异步函数简介
语法:
async function asyncFuncName(param1, param2, ...) { statements }
async
函数的返回值是一个 Promise
对象。当这个 async
函数返回一个值时,Promise
的 resolve 方法会负责传递这个值(相当于Promise.resolve(value));当 async
函数抛出异常时,Promise
的 reject 方法也会传递这个异常值(相当于Promise.reject(value))。
async
函数中可能会有 await
表达式,await 表达式会暂停当前 async function
的执行,等待 Promise 处理完成。若 Promise 正常处理(fulfilled),其处理结果作为 await 表达式的值,继续执行 async function
。
若 Promise 处理异常(rejected),await 表达式会把 Promise 的异常原因抛出。
另外,如果 await 操作符后的表达式的值不是一个 Promise,那么该值将被转换为一个已正常处理的 Promise。(Promise.resolve(value))