美文网首页
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