Biblioteca de JS Q - DIERTE ERROR ATRACKING
-
23-12-2019 - |
Pregunta
Estoy descubriendo la biblioteca Kris Koval Q y tengo un problema.Mira este simple código:
function getPromise1() {
var deferred = Q.defer();
setTimeout(function () {
console.log('Promise 1 OK');
deferred.resolve();
}, 1000);
return deferred.promise;
}
function getPromise2() {
var deferred = Q.defer();
setTimeout(function () {
console.log('Promise 2 Failed');
deferred.reject();
}, 1000);
return deferred.promise;
}
getPromise1()
.then(getPromise2())
.fail(function () {
alert('Fail!');
})
.done();
Espero ver:
Promise 1 OK
Promise 2 Failed
y luego Mostrar alerta "Fallo!", Pero la alerta nunca se muestra.En lugar de que veo advertencia en mi consola:
[Q] Unhandled rejection reasons (should be empty): ["(no stack) undefined"]
¿Por qué el rechazo no se maneja y cómo puedo manejarlo?
Solución
En la función then
, debe pasar solo la función getPromise2
, no es el resultado del código de getPromise2()
getPromise1()
.then(getPromise2) // NOTE: We are not calling it here
.fail(function () {
console.log('Fail!');
})
.done();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow