Was wäre der idiomatische Weg, um so etwas wie eine while-Schleife mit Versprechungen zu machen? Damit:
etwas tun, wenn die Bedingung noch besteht. Wiederholen Sie den Vorgang und wiederholen Sie dann etwas anderes.
dosomething.then(possilblydomoresomethings).then(finish)
Ich habe es so gemacht, dass ich mich gefragt habe, ob es bessere / idomatischere Wege gibt.
var q = require('q');
var index = 1;
var useless = function(){
var currentIndex = index;
console.log(currentIndex)
var deferred = q.defer();
setTimeout(function(){
if(currentIndex > 10)
deferred.resolve(false);
else deferred.resolve(true);
},500);
return deferred.promise;
}
var control = function(cont){
var deferred = q.defer();
if(cont){
index = index + 1;
useless().then(control).then(function(){
deferred.resolve();
});
}
else deferred.resolve();
return deferred.promise;
}
var chain = useless().then(control).then(function(){console.log('done')});
Ausgabe: 1 2 3 4 5 6 7 8 9 10 11 fertig