好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

javascript异步编程之:世界上最短的Promise库

javascript异步编程之:世界上最短的Promise库

javascript异步编程之:世界上最短的Promise库

类库源码

     var  Promise =  function  () {
         this .thens = [];
    };
    Promise.prototype = {
        resolve:  function  () {
             var  t =  this .thens.shift(), n;
            t && (n = t.apply( null , arguments), n instanceof Promise && (n.thens =  this .thens));
        },
        then:  function  (n) {
             return   this .thens.push(n),  this ;
        }
    }
使用方式
         function  f1() {
             var  promise =  new  Promise();
            setTimeout( function  () {
               
                alert(1);
                promise.resolve();
            }, 1500)

             return  promise;
        }

         function  f2() {
             var  promise =  new  Promise();
            setTimeout( function  () {

                alert(2);
                promise.resolve();
            }, 1500)

             return  promise;
        }

         function  f3() {
             var  promise =  new  Promise();
            setTimeout( function  () {

                alert(3);
                promise.resolve();
            }, 1500)

             return  promise;

        }

         function  f4() {
                alert(4);
        }
      
        f1().then(f2).then(f3).then(f4)
类库思路

主要的思路就是将主Promise下的任务列表(thens)挂靠到子Promise下。当然该库可以封装至ajax、domready等耗时的场景当中,使其可以”thenable",如:

          $$.ajax( "assets/xxx.php" , {
                     method:  "GET" ,
                     data:  "q=1&rand="  + Math.random()
                 }).then( function  (msg) {
                     alert(msg.responseText)
                 });
have fun! =  =!

作者: 张磊  
出处: http://www.cnblogs.com/iamzhanglei
出处: IamZhangLei.com
本文版权归【当耐特砖家】和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

 

分类:  Javascript

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于javascript异步编程之:世界上最短的Promise库的详细内容...

  阅读:33次