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

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


  var handleFn;  
  if(state === 'fulfilled') {  
  handleFn = deferred.onFulfilled;  
  } else if(state === 'rejected') {  
  handleFn = deferred.onRejected;  
  }  
  var ret = handleFn(value);  
  deferred.resolve(ret); //注意,此时的resolve是promise2的resolve  
  }  
  function resolve(val) {  
  if(val && typeof val.then === 'function') {  
  val.then(resolve); // if val为promise对象或类promise对象时,promise2的状态完全由val决定  
  return;  
  }  
  if(callback) { // callback为指定的回调函数  
  callback(val);  
  }  
  }  
  
  

  

  b)实现了多个不同异步库之间的转换。

  

  

在异步中存在一个叫thenable的对象,就是指具有then方法的对象,只要一个对象对象具有then方法,就可以对其进行转换,例如:  

  

代码如下:

  
  var deferred = $('aa.ajax'); // !!deferred.then === true  
  var P = Promise.resolve(deferred);  
  p.then(......)  
  
  

  

1.4.3 commonJS Promise/A规范  

  

目前关于Promise的规范存在Promise/A和Promise/A+规范,这说明关于Promise的实现是挺复杂的。

  

  

代码如下:

  
  then(fulfilledHandler, rejectedHandler, progressHandler)  
  
  

  

1.4.4 注意事项  

  

一个Promise里面的回调函数是共享value的,在结果处理中value作为参数传递给相应的回调函数,如果value是对象,那就要小心不要轻易修改value的值。 (责任编辑:admin)

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

下一篇:没有了

推荐内容

  • 共8页:
  • 上一页
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 下一页
  • 客户服务热线

    010-400-12345

    在线客服