关于es6 promise面试问题

// 以下代码会打印数组里的元素,但由于promise是异步的所以不是按顺序打印数组里的元素,结合ES6用一种方法使得打印出来的元素是数组里的顺序。

promiseSync () {
    let arr = [1,2,3]
    arr.forEach((item)=>{
        let promise = new Promise((resovle,reject)=>{
            // do something
        }).then(res=>{
            console.log(item)
        })
    })
}
阅读 1.8k
1 个回答

是类似这种么?

let arr = [1, 2, 3];

arr.reduce((prev, cur) => {
  return prev
    .then(() => {
      return new Promise((resovle, reject) => {
        setTimeout(resovle, Math.random() * 1000);
      });
    })
    .then(() => {
      console.log(cur);
    });
}, Promise.resolve());
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题