1.理解javaScript中的async和await
JavaScript中的async和await是AsyncFunction中的关键字。
async函数可能包含0个或多个await表达式。await表达式会暂停整个async函数的执行进程,只有当其等待的基于promise的异步操作被兑现或者被拒绝之后才会恢复进程。promise的解决值会被当作该await表达式的返回值。
(注意:await关键字只在async函数内有效)
async/await的目的是为了简化使用基于promise的API时所需的语法。
async函数一定会返回一个promise对象。async函数的函数体可以被看作是由0个或者多个await表达式分割开的。从第一行代码直到(并包括)第一个await表达式(如果有的话)都是同步运行的。这样的话,一个不含await表达式的async函数是会同步运行的。然而,如果函数体内有一个await表达式,async函数就一定会异步执行。
async/await的优势在于处理then链,单一的Promise链并不能发现async和await的优势,但是如果需要处理多个Promise组成的then链的时候,优势就体现出来了,Promise通过then链来解决多层回调的问题,现在又用async/await来进一步优化它。