我有一个函数,需要调用jquery.ajax,并将其作为承诺进行进一步处理。
但是,有时候,它有足够的信息可以在没有ajax调用的情况下同步进行。它仍然需要返回一个承诺,以履行与呼叫者的合同。什么是惯用的方法呢?
E.g。
function f(x) {
return x?
$.ajax({url: "http://myServer", data: x, ...})
: /* what should be here? */;
}
答案 0 :(得分:1)
要创建履行的jQuery承诺,您可以使用jQuery.when
:
return $.when(…);
要创建一个被拒绝的jQuery承诺,你需要使用一些更复杂的东西(但至少你可以链接它):
return $.Deferrred().reject(new Error(…)).promise();