我正在尝试使用bluebird进行基本的诺言测试,但是结果不是我所期望的。我正在尝试获取“我应该先登录吗?4000”消息,以便首先登录到我的控制台,但是总是首先显示第二条控制台消息。我在做什么错,我该怎么办才能使“ 4000”消息在2000消息之前记录下来?
function longRunningPositiveTest3() {
return new Promise(function(resolve) {
setTimeout(function () {
console.log("Should I be logged first? 4000");
resolve();
}, 4000);
});
}
function longRunningPositiveTest4() {
return new Promise(function(resolve) {
setTimeout(function () {
console.log("Should I be logged first? 2000");
resolve();
}, 2000);
});
}
Promise.resolve(longRunningPositiveTest3())
.then(longRunningPositiveTest4());
谢谢
您正在调用这两个立即启动超时的函数。您需要将回调函数传递给then
!
采用
Promise.resolve(…) // some starting promise
.then(longRunningPositiveTest3)
.then(longRunningPositiveTest4);
或者
longRunningPositiveTest3() // no need to wrap it in Promise.resolve() (but no harm either)
.then(longRunningPositiveTest4);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句