作家
登录

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

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

function () { 
  •  
  •             callbacks.forEach(function (callback) { 
  •  
  •                 handle(callback); 
  •  
  •             }); 
  •  
  •         }, 0); 
  •  
  •     } 
  •  
  •   
  •  
  •     fn(resolve, reject); 
  •  
  •  
  • 上述代码增长了新的reject办法,供异步操作掉败时调用,同时抽出了resolve和reject共用的部分,形成execute办法。

    1. //例6 
    2.  
    3. getUserId() 
    4.  
    5.     .then(getUserJobById) 
    6.  
    7.     .then(function (job) { 
    8.  
    9.         // 处理job 
    10.  
    11.     }, function (error) { 
    12.  
    13.         // getUserId或者getUerJobById时出现的缺点 
    14.  
    15.         console.log(error); 
    16.  
    17.     });  

    细心的同窗会想到:如不雅在履行成功回调、掉败回调时代码掉足怎么办?对于这类异常,可以应用try-catch捕获缺点,并将bridge promise设为rejected状况。handle办法改革如下:

    1. function handle(callback) { 
    2.  
    3.     if (state === 'pending') { 
    4.  
    5.         callbacks.push(callback); 
    6.  
    7.         return
    8.  
    9.     } 
    10.  
    11.   
    12.  
    13.     var cb = state === 'fulfilled' ? callback.onFulfilled : callback.onRejected, 
    14.  
    15.         ret; 
    16.  
    17.     if (cb === null) { 
    18.  
    19.         cb = state === 'fulfilled' ? callback.resolve : callback.reject; 
    20.  
    21.         cb(value); 
    22.  
    23.         return
    24.  
    25.     } 
    26.  
    27.     try { 
    28.  
    29.         ret = cb(value); 
    30.  

    31.   推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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