【1】这里主要看一下await命令的作用:
函数执行的时候,一旦遇到await就会先返回,等到异步操作结束,再接着执行函数体内后面的语句。
await +(promise命令/原始类型的值),而async 函数返回一个promise对象 可以作为await命令的参数,
·1. 创建一个async()函数:
2. async函数返回一个Promise对象,我们可以调用then()方法添加一个回调函数:
3. 现在给出一个例子
这里的执行结果是:
从结果可以看出,是按照顺序执行的,验证了await命令的功能:函数执行的时候,一旦遇到await就会先返回,等到异步操作结束,再接着执行函数体内后面的语句。
await +(promise命令/原始类型的值)
再看一下,没有await命令的例子:
执行结果:
从结果可以看出:先执行了f2,再执行回调里面的代码
【2】现在我们已经知道了await命令,会阻塞代码
question? 如果函数体中有一个await语句后面的promise变为reject,那么整个async函数都会中断执行
我们希望即使前一个异步操作失败,也不要中断后面的异步操作
solve Method1: 可以将第一个await放在try ....catch结构里面,
Method2: 在await后面的promise对象后添加一个catch方法,处理前面可能出现的错误
这里如果有多个await命令,则可以采用方法一,统一放在try...catch结构中
【3】多个await命令后面的异步操作如果不存在继发关系,最好让他们同步执行,缩短执行时间
写成
or
【4】await 函数只能用在async函数中,普通函数不接受