Per favore scusate la mia giovinezza con il concetto di promesse. Sto usando il modulo Q in Node.js. Ho una funzione che intende richiamare una richiamata dopo aver eseguito tutti i passaggi necessari. Il problema si verifica quando voglio chiamare la funzione di callback all'interno della promessa Q.Interruzione di una promessa Q in Node.js durante l'esecuzione di una richiamata?
La mia funzionalità desiderata è poter richiamare il callback quando raggiungo il passaggio finale e non rientrare più nella catena di promesse. Pertanto, la richiamata tornerà alla sua operazione originale. Tuttavia, come ho codificato, la richiamata viene chiamata nel contesto della promessa. A questo punto, se il callback (diciamo) genera un errore, viene catturato dal gestore degli errori in questa funzione, che non è quello che voglio!
var updateDataStream = function(data, input, posts, stream, callback) {
// Pack all the items up...
Q.ncall(data._packStream, data, posts, stream)
// Upsert the cache into the database
.then(function(){
return Q.ncall(data.upsert, data);
})
// buffer the new input
.then(function(res){
return Q.ncall(data.buffer, data, input);
})
.then(function(final){
callback(null, final);
})
.fail(function(err){
console.log('OHNOES!!!!!!!',err);
}).end();
}
In questo contesto, un errore che si verifica all'interno della funzione di callback causa "OHNOES !!!!!" da stampare ....