产品世界当前位置:菲娱2国际 > 产品世界 > >

菲娱国际注册:详谈nodejs异步编程(3)

  

  

下面从如下几个方面来解析Promise的特点:  

  

1.4.1 状态  

  

包含三种状态:pending、fulfilled、rejected,三种状态只能发生两种转换(从pending--->fulfilled、pending—>rejected),并且状态的转换仅能发生一次。

  

  

  

  

1.4.2 then方法  

  

then方法用于指定异步事件完成之后的回调函数。

  

  

这个方法可以说是Promise的灵魂方法,该方法让Promise充满了魔力。有如下几个具体表现:  

  

a) then方法返回Promise。这样就实现了多个异步操作的串行操作。

  

  

  

  

关于上图中黄圈1的对value的处理是Promise里面较为复杂的一个地方,value的处理分为两种情况:Promise对象、非Promise对象。

  

  

当value 不是Promise类型时,直接将value作为第二个Promise的resolve的参数值即可;当为Promise类型时,promise2的状态、参数完全由value决定,可以认为promsie2完全是value的傀儡,promise2仅仅是连接不同异步的桥梁。

  

  

  

  

代码如下:

  
  Promise.prototype.then = function(onFulfilled, onRejected) {  
  return new Promise(function(resolve, reject) { //此处的Promise标注为promise2  
  handle({  
  onFulfilled: onFulfilled,  
  onRejected: onRejected,  
  resolve: resolve,  
  reject: reject  
  })  
  });  
  }  
  function handle(deferred) {   (责任编辑:admin)

上一篇:菲娱国际平台:Bootstrap面板使用方法

下一篇:没有了

推荐内容

客户服务热线

010-400-12345

在线客服