Javascript:使用带有循环的 Async/Await

下面的演示程序向您展示了如何在现代 Javascript 中使用带有 for循环的 async/await语法:****

// kindacode.com
// create a promise that resolves after 1 second
const delayedFunction = (i) => {
  return new Promise((resolve) => {
    setTimeout(() => resolve(`Task ${i} finished`), 1000);
  });
};

// loop through an array with async/await
const run = async () => {
  const arr = [1, 2, 3, 4, 5];

  for (let e of arr) {
    console.log(`Task ${e} started`);
    console.log(await delayedFunction(e));
  }

  console.log('All tasks done!');
};

// run the program
run();

运行这个程序,你会看到任务一个接一个地依次执行,每个任务的开始和结束的时间间隔是1秒:

Task 1 started
Task 1 finished
Task 2 started
Task 2 finished
Task 3 started
Task 3 finished
Task 4 started
Task 4 finished
Task 5 started
Task 5 finished
All tasks done!