然后()在使用蓝鸟承诺时不会被调用

时间:2015-12-03 17:41:03

标签: javascript node.js promise bluebird

我正在尝试使用Promise库创建新的bluebird。相同的代码如下:

var promise = new Promise(function(resolve, reject) {
    console.log('Promise created');
})
var myPromise = promise.then(function() {
    console.log('Then called');
});

setTimeout(function () {
    console.log('promise successful');
    console.log(myPromise);
}, 3);

但控件永远不会进入then区块。我还看到promise对象没有任何履行处理程序:

Promise {
  _bitField: 0,
  _fulfillmentHandler0: undefined,
  _rejectionHandler0: undefined,
  _promise0: undefined,
  _receiver0: undefined }

如何创建承诺并将then块链接到同一个。

2 个答案:

答案 0 :(得分:3)

为了能够使用你创建的Promise,你需要分别通过调用每个函数来解决和/或拒绝你的Promise。

var promise = new Promise(function(resolve, reject)) {      
    if (someWork) resolve(1);
    if (!someWork) reject(2);
}

promise.then(function(data) {
  console.log(data); // 1
});

答案 1 :(得分:0)

您需要在resolve()函数中调用Promise

相关问题