ES9 总结

# Function

# Async-for-await

如何在 JS 循环中正确使用 async 与 await

var doSomething = (i) => {
  return new Promise(res => {
    setTimeout(() => {
      console.log(i);
      res();
    }, i * 1000);
  });
};
var doFinal = () => { console.log('final') };

// Error-1
async function process(array) {
  array.forEach(async i => {
    await doSomething(i);
  });
  doFinal();
}
process([1,2, 3]);

// Error-2
async function process(array) {
  for await (let i of array) {
    doSomething(i);
  }
  doFinal();
}
process([1,2, 3]);

// Ok
async function process(array) {
  for (let i of array) {
    await doSomething(i);
  }
  doFinal();
}
process([1,2, 3]);
js
copy success