返回承诺而不是jquery ajax调用

时间:2016-04-07 10:04:50

标签: javascript jquery ajax promise

我有一个函数,需要调用jquery.ajax,并将其作为承诺进行进一步处理。

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

E.g。

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

1 个答案:

答案 0 :(得分:1)

要创建履行的jQuery承诺,您可以使用jQuery.when

return $.when(…);

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

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