Comprensione di jQuery Deferred.pipe ()

Sto cercando di implementare il metodo jQuery Deferred.pipe () per il seguente scenario:

  1. Aggiungi un utente in DB tramite $ .ajax ()
  2. Ottieni risposta se l’utente è stato aggiunto correttamente o meno.
  3. Se aggiunto correttamente, recupera tutti gli elenchi utenti dal server tramite $ .ajax ()
  4. Visualizza l’elenco tramite modelli jQuery

Questo è qualcosa che ho provato:

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) 

Ma questo non funziona. So che c’è qualcosa che manca o che non va. Qualsiasi aiuto?

In addUsersSuccess, dovresti restituire getUsers. È un errore di battitura semplice, l’idea principale è perfettamente giusta e stai usando la pipa come dovrebbe e benissimo 🙂