Javascript承诺按顺序运行

时间:2014-11-10 14:26:03

标签: javascript node.js promise bluebird

我一直在玩promises和javascript,特别是bluebird.js。

通过阅读文档,如果您想链接可以使用Promise.all([p1, p2, p3])的承诺并将值作为数组返回,则会显示... [1,2,3]。或Promise.props()返回对象引用。

我如何构造一个方法,其中每个promise返回一个传递给下一个promise的值,在需要的地方改变值?如果有人能举一个例子会很棒。

答案:

function Test(value) {
  return new Promise(function(resolve) {
    setTimeout(function(){
        resolve(value);
    }, 500);
  }).then(function(value){
    return new Promise(function(resolve) {
        setTimeout(function(){
          value += ", nice hat!";
          resolve(value);
        }, 2000);  
    });
  }).then(function(value){
    console.log(value);
  });
}

var test = new Test("Hi Promise");

0 个答案:

没有答案