async...await的一些用法总结关于async,它会隐式返回一个Promise对象asyncfunc(){return'a'}//相当于func(){returnnewPromise((resolve,reject)=>{resolve('a')})}asyncfunc(){returnnewPromise(resolve,reject)=>{resolve('a')})}//等同于func(){letpromise=returnnewPromise((resolve,reject)=>{resolve('a')})returnnewPromise((resolve)=>resolve(promise))}asyncfunc中有return'a',相当于resolve(ofnewPromise在func'a')asyncfunc中有throwError('a'),相当于func中newPromise的reject('a')。关于awaitawait后面是Promise对象,如果不是,也会转成Promise对象。比如constres=await'hello'等同于constres=awaitPromise.resolve('hello')try...catch()incatch()会捕获Promise的异常,下面的代码是我经常使用的asyncfunctionfunc(){try{constres=awaitPromise.reject(30);}catch(err){console.log(err);//30}}函数();顺序执行异步操作//先执行task1,res1有结果后,执行task2asyncfunc(){constres1=awaittask1()constres2=awaittask2()}并行执行异步操作func(){task1()task2()task3()}或者,asyncfunc(){constpromise1=task1()constpromise2=task2()constres1=awaitpromise1constres2=awaitpromise2}或者,asyncfunctionfunc(){awaitPromise.all([task1(),task2(),task3()])console.log('三个任务已执行')//全部执行完成后,执行以下代码}
