7.x的Node 能支持async/await可謂是大快人心,瀏覽器上也能通過babel轉(zhuǎn)換成es5來耍不過async/await畢竟是有傳染性的,你一個地方使用了 所有的調(diào)用的地方都得用async function fun1(){ return await new Promise(function(resolve){
setTimeout(function(){
resolve('resolved');
},2*1000);
});
}async function fun2(){ let d; try{
d = await fun1();
}catch(e){}
return d;
}
(async ()=>{ console.log('---->'); let d = await fun2(); console.log('d=',d);
})();如上面的栗子,fun1開始 沿路一直到最后必須都加上async/await關(guān)鍵字,這就非常蛋疼了,因為一旦漏了就有可能會出問題,而在某些極端的情況下勢必每個function都是寫成async function的不知道現(xiàn)在大家是怎么處理這樣的問題的?通篇都加async么?特別是通過babel轉(zhuǎn)換之后的狀態(tài)機(jī)很復(fù)雜,不好調(diào)試.當(dāng)然 如果你當(dāng)中的fun2只是單純的return操作,可以不加,不過既然多個function肯定會引入其它處理,這里只是簡化下例子而已謝謝.
async await 如何解決 傳染性/傳播性
狐的傳說
2018-09-03 09:15:22