当前位置: 首页 > 后端技术 > Node.js

1分钟阅读《10 分钟学会 JavaScript 的 Async-Await》

时间:2023-04-03 11:48:43 Node.js

1分钟阅读10分钟解释JavaScriptAsync/Await之前我们使用回调。稍后我们使用Promises。现在我们使用Async/Await。1.什么是异步/等待?Async-定义一个异步函数(asyncfunctionsomeName(){...})并自动将函数转换为Promise。调用异步函数时,会解析函数的返回值。AwaitAwait可以在异步函数内部使用——暂停异步函数的执行(varresult=awaitsomeAsyncCall();)当用在Promise前面时,await等待Promise完成并返回Promise的结果。await只能与Promise一起使用,不能与回调一起使用。await只能用在async函数中2.Async/Await会取代Promise吗?不会,Async/Await底层还是用Promise。当多个异步函数同时执行时,Promise.allasyncfunctiongetABC(){letA=awaitgetValueA();//getValueA需要2秒letB=awaitgetValueB();//getValueA需要4秒letC=awaitgetValueC();//getValueAtakes3secondsreturnA*B*C;}每次遇到await关键字,Promise都会停止,直到运行结束,所以总耗时为2+4+3=9秒。await将异步转换为同步。asyncfunctiongetABC(){//Promise.all()允许同时执行所有异步函数letresults=awaitPromise.all([getValueA,getValueB,getValueC]);returnresults.reduce((total,value)=>total*value);}函数总耗时4秒(getValueB的耗时)。3.Async/Await错误处理在Async/Await语法中,我们可以使用try/catch来进行错误处理。Promise中的.catch()分支进入catch语句。阅读原文:JavaScriptAsync/Await10分钟详解讨论地址:10分钟学会JavaScript的Async/Await想参与讨论的请点这里