【发布时间】:2015-11-13 18:58:35
【问题描述】:
我正在尝试让此代码按顺序(test1、test2、test3)执行 console.logs。现在是 test1、test3、test2。我原以为第二个 then() 会在开始之前等待 resolve() 函数,但它不起作用:)
var bluebird = require('bluebird');
var promise = bluebird.resolve(true);
promise.then(function() {
return new bluebird(function(resolve, reject) {
console.log("test1");
setTimeout(function() {
console.log("test2");
resolve();
}, 3000);
});
});
promise.then(function() {
console.log("test3");
});
【问题讨论】:
-
你想要
promise.then(…).then(…)- 不要在promise本身上再次调用第二个then(),而是在第一个的返回值上调用。