async await yield

问题: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,自带执行器。

 

posted @ 2018-05-12 18:29  郑叶叶  阅读(3434)  评论(0编辑  收藏  举报