作家
登录

30分钟,让你彻底明白Promise原理

作者: 来源: 2017-06-08 10:02:44 阅读 我要评论

  •         callback.resolve(ret); 
  •  
  •     } catch (e) { 
  •  
  •         callback.reject(e); 
  •  
  •     } 
  •  
  •  
  • 如不雅在异步操作中,多次履行resolve或者reject会反复处理后续回调,可以经由过程内置一个标记位解决。

    总结

    刚开端看promise源码的时刻总不克不及很好的懂得then和resolve函数的运行机理,然则如不雅你静下心来,反过来根据履行promise时的逻辑来推演,就不难解得了。这里必定要留意的点是:promise琅绫擎的then函数仅仅是注册了后续须要履行的代码,真正的履行是在resolve办法琅绫擎履行的,理清了这层,再来分析源码会省力的多。

    如今回想下Promise的实现过程,其重要应用了设计模式中的不雅察者模式:

    1. 经由过程Promise.prototype.then和Promise.prototype.catch办法将不雅察者办法注册到被不雅察者Promise对象中,同时返回一个新的Promise对象,以便可以链式调用。
    2. 被不雅察者治理内部pending、fulfilled和rejected的状况改变,同时经由过程构造函数中传递的resolve和reject办法以主动触发状况改变和通知不雅察者。

    参考文献

    • 深刻懂得 Promise
    • JavaScript Promises … In Wicked Detail 

    getUserId办法返回一个promise,可以经由过程它的then办法注册(留意注册这个词)在promise异步操作成功时履行的回调。这种履行方法,使得异步调用变得十分顺手。

    【编辑推荐】

    1. Promise & Generator——幸福地用同步办法写异步JavaScript
    2. 只为那句承诺-大年夜话Promise
    3. [译]Async函数,让promise更友爱!
    4. Async/Await替代Promise的6个来由
    5. JavaScript异步与Promise实现
    【义务编辑:枯木 TEL:(010)68476606】

      推荐阅读

      2017年上半年重大黑客事件盘点

    16. 美国法律论坛71万账户泄漏,涉国度安然局、FBI等本年4月,达拉斯紧急警备孀体系被黑客入侵。导致该城市的156个紧急戒备器被激活,警笛声持续一个小时,激发市平易近惊恐。 在以前的201>>>详细阅读


    本文标题:30分钟,让你彻底明白Promise原理

    地址:http://www.17bianji.com/lsqh/35631.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)