我们定义了一组执行步骤 steps 和一个模拟异步执行的函数 execute,希望能够按顺序执行每一个步骤,并打印出结果。
先用 forEach 实现一下
用 for of 实现一下
forEach方法直接遍历数组并执行回调函数,无法保证异步任务的执行顺序。如果后面的任务执行时间较短,就可能在前面的任务之前完成执行。
for...of循环实际上是基于迭代器(Iterator)的遍历方式。对于数组来说,它是一种可迭代对象,可以通过迭代器进行遍历。
数组是如何创建迭代器的呢?
使用 for...of 循环可以保证异步任务的执行顺序,但是如果异步任务之间没有依赖关系,可以使用 Promise.all()方法来并发执行异步任务,提高效率。