理解jQuery Deferred.pipe()

我正在尝试为以下场景实现jQuery Deferred.pipe()方法:

  1. 通过$ .ajax()在DB中添加用户
  2. 获取是否正确添加用户的响应。
  3. 如果成功添加,则通过$ .ajax()从服务器获取所有用户列表
  4. 通过jQuery模板显示列表

这是我尝试过的东西:

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) 

但这不起作用。 我知道有些东西遗失或错误。 有帮助吗?

在addUsersSuccess中,您应该返回getUsers。 这是一个简单的错字,你完全正确的主要想法,并使用管道,因为它应该是很好:)