2013-03-13 10 views
12
mentre

Saluto tutti,nodejs Async di

voglio chiamare ripetutamente una funzione, ma ha voluto ogni chiamata per eseguire solo quando la chiamata precedente è stato completato. Gli Async sono compatibili con quello di cui ho bisogno? Oppure le chiamate avvengono in parallelo?

Grazie!

Gary

risposta

26

Mentre farà ciò che è necessario, viene eseguito ogni funzione in serie. Prima di ogni esecuzione, eseguirà la funzione "test" per assicurarsi che venga eseguita di nuovo.

Il loro esempio:

var count = 0; 

async.whilst(
    function() { return count < 5; }, 
    function (callback) { 
     count++; 
     setTimeout(callback, 1000); 
    }, 
    function (err) { 
     // 5 seconds have passed 
    } 
); 
+0

Man mi hai salvato un sacco di tempo !!! Grazie mille. –

1

As Chad noted, Async di whilst farà il lavoro.

Si consiglia di prendere in considerazione Async's until (inverso di mentre). Entrambi fanno lo stesso lavoro ma la differenza fondamentale è:

  • async.whilst chiamerà la funzione ogni volta che il test di passa
  • async.until chiamerà la funzione ogni volta che il test di fallisce