Sto provando a implementare un ciclo while usando le promesse.Mentre il ciclo utilizza bluebird promette
Il metodo descritto qui sembra funzionare. http://blog.victorquinn.com/javascript-promise-while-loop utilizza una funzione come questa
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;
};
Questo sembra utilizzare anti-pattern e metodi deprecati come cast e rinviare.
Qualcuno sa un modo migliore o più moderno per realizzare questo?
Grazie
si può spiegare a parole cosa si sta realmente cercando di realizzare? Ricorda che un loop di attesa è una cosa orribile in Javascript. Ha molto più senso usare una sorta di gestore di eventi piuttosto che chiamare ripetutamente qualcosa in un ciclo chiuso. E cosa fa 'action()'? Forse mostrare un esempio di come lo useresti? – jfriend00