Sie können eine einfache Delay-Funktion erstellen, die ein Versprechen zurück und verwenden Sie diese in Ihrem Versprechen Kette:
function delay(t, val) {
return new Promise(function(resolve) {
setTimeout(function() {
resolve(val);
}, t);
});
}
myService.new(a).then(function(temp) {
return delay(60000, temp);
}).then(function(temp) {
return myService.get(a, temp);
}).then(function (b) {
console.log(b);
});
Sie könnten auch erweitern den Promise
Prototyp mit einer .delay()
Methode (die einige Versprechen Bibliotheken wie Bluebird bereits eingebaut haben). Beachten Sie, diese Version der Verzögerung geht auf den Wert, den es auf die nächste Glied in der Kette gegeben:
Promise.prototype.delay = function(t) {
return this.then(function(val) {
return delay(t, val);
});
}
Dann können Sie dies nur tun:
myService.new(a).delay(60000).then(function(temp) {
return myService.get(a, temp);
}).then(function (b) {
console.log(b);
});
Was Versprechen Bibliothek verwenden Sie? – Bergi
Erstellen Sie ein neues Versprechen im 'then' Handler und geben Sie es vom' then' Handler zurück, dann im 'timer' lösen Sie das neue Versprechen, das den' done' Handler ausführt –