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