如何承诺循环



    var arr = ["node.js", "Java", "C#"];
var newArr = [];
let promise = new Promise((resolve, reject) => {
        for(let i = 0; i < arr.length; i++) {
            setTimeout(() => {
                newArr.push(arr[i])
                resolve(newArr);
            }, 1000);
        }
});
promise
        .then(result => {
             alert(result);
         }
);

现在,它在第一次循环后提醒数据。如何通过Promises显示来自Async操作的数据,之后通过整个循环?

所需的行为:在异步模式下将数据添加到Newarr,并在循环结束后显示。

您需要有多个诺言,并带有所有

的承诺

const myPromises = [];
for (let i=0; i<5; i++) {
  myPromises.push(new Promise((resolve, reject) => {
      setTimeout(() => {
        console.log("done", i);
        resolve(i)
      } , i*500);
  })); 
}
Promise.all(myPromises).then(values => { 
  console.log("All: ", values)
});

最新更新