Sto provando alcune delle funzionalità di armonia nel nodo 0.12, in particolare provando la nuova funzione di generatori. Sto facendo questo con il co (v4), Bluebird ed esprimere (v4), qualcosa di simile:Funzioni generatore in express con bluebird e co
// ...
var fs = bluebird.promisifyAll(require('fs'));
// ...
app.post('/test', co.wrap(function* (req, res, next) {
var contents = yield fs.readFileAsync('/etc/hosts', 'utf8');
return res.send(contents);
}));
// ...
Secondo la documentazione, co.wrap restituisce una normale funzione che restituisce una promessa dalla data funzione del generatore .
Questo sta lavorando bene finora, ma quello che non sono sicuro è che se a) sto perdite di memoria non e 'in attesa' per il risultato della promessa restituiti e b) Se potrei perdere un'eccezione gettato nel mio generatore funzione, o uno dei moduli utilizzati da esso.
È un buon approccio? Vedi qualcosa di sbagliato?
Vuol 'app.post' si aspettano di attendere il risultato asincrona della vostra richiamata in qualche modo? – Bergi
app.post è express 'app.post. Quindi, suppongo di no (?) – Matt
È inutile usare 'co' se si sta usando bluebird dato che bluebird viene fornito con' Promise.coroutine' che è comunque una versione più potente e robusta di 'co'. –