promise、async、await使用
promise:promise将异步操作按照链式串联起来
Promise.all()
方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。
Promise.all()
方法接受一个数组作为参数,p1
、p2
、p3
都是 Promise 实例,如果不是,就会先调用下面讲到的Promise.resolve
方法,将参数转为 Promise 实例,再进一步处理。
async
函数返回一个 Promise 对象,可以使用then
方法添加回调函数。
async
函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而await
命令就是内部then
命令的语法糖。
await 命令
正常情况下,await
命令后面是一个 Promise 对象,返回该对象的结果。如果不是 Promise 对象,就直接返回对应的值。
任何一个await
语句后面的 Promise 对象变为reject
状态,那么整个async
函数都会中断执行。
使用注意点
1、await
命令后面的Promise
对象,运行结果可能是rejected
,所以最好把await
命令放在try...catch
代码块中。
2、多个await
命令后面的异步操作,如果不存在继发关系,最好让它们同时触发。
3、await
命令只能用在async
函数之中,如果用在普通函数,就会报错。
4、async 函数可以保留运行堆栈。