promise、async、await
三者都是实现异步操作,其中async和await是基于promise的语法糖,
promise提供了
then()来逐步执行操作
cathch()来捕获运行中发生的错误
finally()来执行一些无论如何都会执行的代码,如注销某些行为
async和await同时存在,通过async定义一个异步函数,await来指定等待某些行为,
对于某些没有先后层次的行为,我们不必同时对其定义await,而应采取更高效的方法
将所有异步操作放入数组内,然后await Promise.all([])
对于map()/forEach()函数,内部定义await是没有意义,他依然会立即返回一个结果,
正确的做法是使用传统for循环来进行遍历,
如果想对for循环内所有异步操作进行一个并发执行,
我们除了可以采用await Promise.all([])
也可以
for await (let i of [])来进行操作