你如何在几个承诺中间设置超时?

How do you set timeout in the middle of several promises?

我正在使用 node/express,我需要在许多承诺中设置一个以天为单位的非常长的超时。

我的代码是这样的:

.then(function(thing){
setTimeout(function(thing), 5000)
.then(function() {
//do something else

在 setTimeout 中间包括函数之前和之后一切都运行良好,但超时被完全忽略。为了迭代的目的,我将超时设置为 5 秒而不是任何聪明人的几天。

如果您使用的是 Parse,我想您可以做出自定义承诺,例如...

function pWaiter(time){
    var promise = new Parse.Promise();
    setTimeout(function(){
        promise.resolve();
    }, time);
    return promise;
}

并像这样使用它:

...
.then(function(thing){
    return pWaiter(5000);
}).then(function() {
...