Entendiendo jQuery Deferred.pipe()
deferred promise jquery (1)
Estoy intentando implementar el método jQuery Deferred.pipe () para el siguiente escenario:
- Agregar un usuario en DB a través de $ .ajax ()
- Obtener respuesta si el usuario fue agregado correctamente o no.
- Si se agregó correctamente, obtenga toda la lista de usuarios del servidor a través de $ .ajax ()
- Mostrar la lista a través de plantillas jQuery
Esto es algo que intenté:
var addUserSuccess = function( data ) {
if ( data.returnCode !== "success" ) {
return $.Deferred().reject(''Error saving user'');
}
getUsers();
}
var addUser = function() {
return $.ajax(url, {
type: "POST",
data: { username: ''test'' },
contentType: "application/json",
dataType: "json"
});
}
var displayUsers = function( data ) {
$(''#myTmpl'').tmpl(data.d).appendTo(''#myDiv'');
}
var getUsers = function () {
return $.ajax(url, {
type: "GET",
data: {},
contentType: "application/json",
dataType: "json"
});
}
$.when(addUser()).pipe(addUserSuccess).then(displayUsers)
Pero esto no funciona. Sé que falta algo o está mal. ¿Alguna ayuda?
En addUsersSuccess, debería devolver getUsers. Es un error tipográfico simple, tienes la idea principal perfectamente correcta y estás usando pipe como debería ser y muy bien :)