問題:async 和yield有什么區別?
無奈只能用“書到用時方恨少”來解釋這個問題了。其實也是自己從開始編程就接觸的是nodejs中的async 以及await ,yield幾乎、貌似好像都沒使用過,至於它倆的區別,自己也就一知半解了,還希望看到這個問題的大神可以指教一二。
零零總總的總結一點:
1.ES6語法:async 與await搭配使用,不能拆開;
2.都是屬於異步方案;
3.本質上:是解決異步編程怎么像同步編成那樣寫的;
4.yield :需要手動控制異步執行過程,調用.next()一步一步手動執行;方法名前加 * ;
5.async:算是異步執行問題的終極解決辦法,在寫法上就是用 async代替yield中的 * ,await代替yield,返回值是promise;
6.async是標准,yield比較hack;
7.就功能或者某些方面來說,async屬於yield的子集;(yeild可以接收數組來並發,也可以接收object來並發);yield后面跟數組的話,自動加Promise.all()來執行;await后面只能接promise,並且返回的也是promise;
8.async/await 相對於Generator:語義上更容易理解;
9.async await不需要generator,自帶執行器。