8. async函数和await表达式

    技术2022-07-11  87

    (一) async异步函数

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/async_functionasync函数的返回值为promise对象。promise对象的结果由async函数执行的返回值决定。一个async异步函数可以包含await指令,该指令会暂停异步函数的执行,并等待Promise执行,然后继续执行异步函数,并返回结果。如果在async函数中抛出了错误,则终止错误结果,不会继续向下执行。如果想要使得错误的地方不影响async函数后续的执行的话,可以使用try catch,或者你可以直接在Promise.reject后面跟着一个catch()方法:

    (二) await 表达式

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/awaitawait右侧的表达式一般为promise对象,但是也可以是其他的值如果表达式是promise对象,await返回的是promise成功的值。如果表达式是其他值,直接返回此值作为await的返回值。注意:await 必须写在async函数中,但async函数中可以没有await,如果await的promise失败了,就会抛出异常,需要通过try…catch来捕获处理async function fn(){ return new Promise((resolve, reject)=>{ reject(1); }) } async function fn2(){ try{ const result = await fn(); console.log('result:', result); }catch(err){ console.log('err:',err); } } fn2();
    Processed: 0.011, SQL: 9