Esiste un modo per fermare nel bel mezzo di una funzione, e attendere un certo evento prima di continuare?Come mettere in pausa nel mezzo di una funzione (ritorno ritardo) e proseguire sulla manifestazione
Come mettere in pausa nel mezzo di una funzione (ritorno ritardo) e proseguire sulla manifestazione
risposta
Purtroppo non credo che si può fare. Una volta iniziata l'esecuzione di una funzione, continuerà fino alla fine della funzione. Credo che ciò che si potrebbe desiderare di provare è creare due funzioni con un callback per la seconda funzione che è registrato con l'evento che si sta ascoltando per. Tuttavia, è difficile saperlo di sicuro visto che non hai pubblicato alcun codice.
Si dovrebbe avvolgere la seconda metà del codice in una funzione anonima e fissarlo come un gestore di eventi:
function myFunction() {
firstHalfOfMyFunction();
eventEmitter.on('someEvent', function() {
secondHalfOfMyFunction();
});
}
È possibile utilizzare node-fibers che uso nella mia biblioteca Common Node.
Sembra la risposta perfetta per me. Cercando le fibre del nodo in questo momento. –
'stato molto difficile per me non scrivere codice fuorviante, ma mi avete capito bene. E grazie per la risposta. L'ho già implementato. –
a me questo sembra il più grande difetto in javascript. Se funzioni potrebbero mettere in pausa, abbiamo potuto solo eseguire async IO chiamate senza bloccare e non entrare in callback inferno. – light24bulbs
@ light24bulbs Indipendentemente dal linguaggio, se ti ritrovi a pensare "Vorrei poter mettere in pausa questa funzione", quello che stai dicendo è che vuoi due funzioni. –