返回promise而不是jquery ajax调用

Returning promise instead of jquery ajax call

本文关键字:jquery ajax 调用 promise 返回      更新时间:2024-02-25

我有一个函数,期望它调用jquery.ajax,并将其作为进一步处理的承诺返回。

但是,有时,它有足够的信息可以在没有ajax调用的情况下同步进行。它仍然需要返回一个承诺,以履行与呼叫者的合同。做这件事的惯用方法是什么?

例如

function f(x) {
  return x? 
    $.ajax({url: "http://myServer", data: x, ...})
    : /* what should be here? */;
}

要创建一个已完成的jQuery承诺,可以使用jQuery.when:

return $.when(…);

要创建一个被拒绝的jQuery承诺,您需要使用更复杂的东西(但至少您可以将其链接):

return $.Deferrred().reject(new Error(…)).promise();