美文网首页
ES6用同步的写法处理异步逻辑

ES6用同步的写法处理异步逻辑

作者: 死鱼 | 来源:发表于2017-06-06 18:47 被阅读0次

似乎大部分JS的文章都会拿callback hell来做开场白

那我也拿了。↑

从ES6出来就听说有一种来自黑魔法:“用同步的写法处理异步问题”;


直到接触egg.js,我才开始研究他的实现方式。经过2个钟头的试错,终于得出了一个简陋的结果。

贴上代码

1、首先把所有需要异步处理的内容封装成Promise。

2、主函数是一个Generator函数。

3、执行主函数不是单纯调用主函数,而是判断yield回来的是不是Promise对象。

4、如果是Promise对象,那么then一下,把resolve的数据传入下个next中。

5、这时候如图中,主逻辑中的"var result = " ,就被赋值了Promise的resolve结果了。


这样写的好处是让主逻辑本该的异步代码变成同步代码写法,用ES6 Generator的特性,把主逻辑的函数执行权交给了Promise对象。

有种“协程”的感觉。

相关文章

网友评论

      本文标题:ES6用同步的写法处理异步逻辑

      本文链接:https://www.haomeiwen.com/subject/mjrnfxtx.html