Promise Hell in Js

Em chào mọi người ạ? Chuyện là hôm qua em có tìm hiểu đến promise trong Js. Em muốn in ra một dãy từ 1 đến 5 thông qua promise như sau:

let promise = function (number) {
            return new Promise(function (resolve) {
                let time = Math.floor(Math.random() * 100) + 1;
                setTimeout(() => {
                    let data = `Time: ${time / 1000}s - Value: ${number}`;
                    resolve(data);
                }, time);
            })
        }

     let x = 1;
     function printAll() {
     if (x > 5) return true;
     promise(x).then((data) => {
     console.log(data);
     printAll(++x);
      })
     }
     printAll();

Kết quả thì như em mong muốn nhưng code thì lại giống như rơi vào tình trạng promise hell. Bởi dùng đệ quy thì chung quy ra vẫn giống kiểu gọi một promise trong .then() của một promise trước đó. Mọi người cho ý kiến và cách giải quyết giúp em với được không ạ. Em cảm ơn!

*lack of

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?