Disculpe mi novedad con el concepto de promesas. Estoy usando el módulo Q en Node.js. Tengo una función que debe llamar a una devolución de llamada una vez que haya realizado todos los pasos necesarios. El problema ocurre cuando quiero llamar a la función de devolución de llamada dentro de la promesa Q.¿Salir de una promesa de Q en Node.js al realizar una devolución de llamada?
Mi funcionalidad deseada es poder llamar a la devolución de llamada cuando llegue al último paso, y ya no esté dentro de la cadena de promesas. Por lo tanto, la devolución de llamada volverá a su operación original. Sin embargo, como lo he codificado, se llama a la devolución de llamada dentro del contexto de la promesa. En este punto, si la devolución de llamada (por ejemplo) arroja un error, queda atrapado por el controlador de errores en esta función, que no es lo que quiero.
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();
}
En este contexto, un error que ocurre dentro de la función de devolución de llamada provoca "¡OHNOES !!!!!" para imprimir ....