Sono nuovo alle promesse e utilizzo dell'implementazione rsvp.Come leggere più file in modo asincrono con promesse, quindi procedere
Voglio leggere in modo asincrono un elenco di file, quindi passare a un'altra attività solo quando tutti i file sono stati letti.
ho per quanto riguarda la struttura di base per leggere un file, e la catena al prossimo compito:
var loadFile = function (path) {
return new rsvp.Promise(function (resolve, reject) {
fs.readFile (path, 'utf8', function (error, data) {
if (error) {
reject(error);
}
resolve(data);
});
});
};
loadFile('src/index.txt').then(function (data) {
console.log(data);
return nextTask(data);
}).then(function (output) {
//do something with output
}).catch(function (error) {
console.log(error);
});
voglio fare qualcosa di simile:
loadFile(['src/index.txt', 'src/extra.txt', 'src/another.txt']).then(...
I' ho visto arrays of promises e hash of promises nei documenti, ma non so quale sia più rilevante, o come usarli. Ho bisogno di un esempio del loro uso nel contesto del mio problema sopra per capirli.
Prima di caricare i file, ho un'attività precedente non correlata che restituisce una promessa diversa. Come faccio a incatenare RSVP.all() per attendere questa attività dipendente? – mtmacdonald
Basta chiamare RSVP.all() nella richiamata risoluzione dell'attività precedente. – bardzusny
Non sono riuscito a far funzionare la versione dell'oggetto: [Errore: i metodi di array devono disporre di una matrice]. Non importa - questo è ciò che RSVP.hash è per. – mtmacdonald