async/await 雨点打透心脏的1/2处 2023-03-02 07:42 5阅读 0赞 ## 1.async函数 ## **函数返回值为 promise对象** promise对象的结果由async 函数执行的返回值决定 ## 2.await 表达式 ## **await 右侧的表达式一般为promise对象 ,但是也可以是其他值** 如果表达式为promise对象,await返回的是promise成功的值 如果表达式 是其他值,直接将此值作为await的返回值 ## 3.注意: ## await 必须写在async 函数中 ,但async函数可以没有await 如果await 的promise 失败了,就会抛出异常,**需要通过try…catch来捕获 处理** async 函数里**return 2 也是返回的promise** **!!!是async不是await,await是 可以返回它本身的** await只能得到成功的结果 try catch可以得到失败的结果 async function fn1(){ // throw 2; // return Promise.resolve(3) // return Promise.reject(3) return new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve(4) },1000); }) } const result=fn1() result.then( value=>{ console.log("onResolved()",value) }, reason=>{ console.log("onRejected()",reason) } ) function fn2(){ return new Promise((resolve,reject)=>{ setTimeout(()=>{ // resolve(5) reject(666) },1000); }) } function fn4(){ return 6 } // async function fn3(){ // // const value=await fn2()//await右侧表达式为promise,得到的结果 就是promise成功的value // const value=await fn4();//await右侧表达式不是promise,得到的 结果就是它本身 // console.log(value) // } async function fn3(){ try{ const value=await fn2() }catch(error){ console.log("得到失败的结果",error) } // // const value=await fn2()//await右侧表达式为promise,得到的结果 就是promise成功的value const value=await fn4();//await右侧表达式不是promise,得到的 结果就是它本身 console.log("value" ,value) } fn3(); ![在这里插入图片描述][20200728111547208.png] [20200728111547208.png]: /images/20230208/7a82342e1e6948dbaa891e659accf92f.png
还没有评论,来说两句吧...