intentando romper la cadena de promesa jQuery con .then, .fail y .reject
Actualización: este problema fue resultado de jQuery 1.7 vs 1.8. No utilice nunca promesas en 1.7 porque no pueden cambiarse con una promesa dentro de un.then
. Parece que 1.8 no lo estropearon.
http://jsfiddle.net/delvarworld/28TDM/
// make a promise
var deferred = $.Deferred();
promise = deferred.promise();
// return a promise, that after 1 second, is rejected
promise.then(function(){
var t = $.Deferred();
setTimeout(function() {
console.log('rejecting...');
t.reject();
}, 1000);
return t.promise();
});
// if that promise is successful, do this
promise.then(function() {
console.log('i should never be called');
})
// if it errors, do this
promise.fail(function() {
console.log('i should be called');
});
deferred.resolve();
Esperado: 'debería llamarme'
Actual: 'nunca debería ser llamado'
Problema: Quiero encadenar devoluciones de llamada y hacer que cualquiera de ellos pueda romper la cadena y activar elfail
función, y omitir las otras devoluciones de llamada encadenados. No entiendo por qué todos los thens se activan y el fallo no se activa.
Vengo de la biblioteca Q de NodeJS, así que lo probé con.then
primero. Sin embargo, cambiándolo a.pipe
no tiene efecto.