学习呦
async、await
async、await
async
概念:
在函数前的一个关键字,一个标识。有此关键字的函数返回的值会自动的用一个resolved的Promise包装Promise.resolve('xxx')
await
概念:
提供一种中断和恢复程序执行的能力,中断的地方在await关键字的下面(不是关键字后面!!),如果后面是一个Promise,则等待Promise的状态变为resolve(也就是执行了这个Promise的resolve)之后接收执行的结果
如果await后面跟随的不是一个Promise,是一个值,或者普通函数,那么就会按照普通函数执行,或者返回值
let bar = await 'foo' |
注意:
async和await必须成对的出现,且async包含await。在Module模块化的js文件中,await可以顶层写
async function f() { |
比如下面例子
// 我们假设此代码在 module 中的顶层运行 |
其他模块通过import导入这个模块
错误处理
try...catchasync函数后直接.catch()调用捕获错误全局错误处理函数
不处理会打印在控制台,且终止函数的运行,毕竟抛出了错误没有管
PS. 如果在Promise中发生了异常,会执行Promise.reject(err),表现在async/await中就是await接收一个前面的rejected,如果没处理错误就会停止程序的执行
async function f() { |