Ich versuche, eine while-Schleife mit Versprechen zu implementieren.While-Schleife mit Bluebird verspricht
Die hier beschriebene Methode scheint zu funktionieren. http://blog.victorquinn.com/javascript-promise-while-loop verwendet es eine Funktion wie diese
var Promise = require('bluebird');
var promiseWhile = function(condition, action) {
var resolver = Promise.defer();
var loop = function() {
if (!condition()) return resolver.resolve();
return Promise.cast(action())
.then(loop)
.catch(resolver.reject);
};
process.nextTick(loop);
return resolver.promise;
};
Dies scheint anti-Muster zu verwenden und veraltete Methoden wie Guss- und verschieben.
Kennt jemand einen besseren oder moderneren Weg, dies zu erreichen?
Dank
Können Sie in Worten zu erklären, was Sie wirklich zu tun versuchen? Denken Sie daran, dass eine "busy-wait" -Schleife in JavaScript eine schreckliche Sache ist. Es ist viel sinnvoller, eine Art Event-Handler zu verwenden, anstatt wiederholt etwas in einer engen Schleife aufzurufen. Und was macht 'action()'? Vielleicht ein Beispiel zeigen, wie Sie das benutzen würden? – jfriend00