Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回承诺而不是jquery ajax调用_Javascript_Jquery_Ajax_Promise - Fatal编程技术网

Javascript 返回承诺而不是jquery ajax调用

Javascript 返回承诺而不是jquery ajax调用,javascript,jquery,ajax,promise,Javascript,Jquery,Ajax,Promise,我有一个调用jquery.ajax的函数,并将其作为进一步处理的承诺返回 但是,有时候,它有足够的信息来同步进行,而不需要ajax调用。它仍然需要回复一个承诺,以履行与来电者的合同。做这件事的惯用方法是什么 例如 要创建履行的jQuery承诺,您可以使用: 要创建一个被拒绝的jQuery承诺,您需要使用更复杂的东西(但至少您可以链接它): 您是否尝试过使用Promise.resolve()应使用什么来履行承诺?这些数据来自哪里?这些数据在本地可用。为了这个简单的例子,它可以是{}。when({}

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

但是,有时候,它有足够的信息来同步进行,而不需要ajax调用。它仍然需要回复一个承诺,以履行与来电者的合同。做这件事的惯用方法是什么

例如


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

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


您是否尝试过使用
Promise.resolve()
应使用什么来履行承诺?这些数据来自哪里?这些数据在本地可用。为了这个简单的例子,它可以是{}。when({})似乎做了我想做的事情,而且很好,很简单。新承诺。决心(…)感觉太沉重(语法上),这就是我问这个问题的原因question@DavidGoldfarb:这是
Promise.resolve({})
(no
new
),它在
时与jQuery的
一样轻,但使用了正确的承诺:-)谢谢。哪一个被认为更为惯用或可读(在已经使用jQuery的代码中)?是$。当被认为更为“合适”(可读、惯用等)时,那么Promise.resolve(…)?@DavidGoldfarb:不,它只是做了一些不同的事情-它返回一个jQuery承诺,而不是一个正确的ES6
Promise
。因此,如果您使用的是jQuery,那么应该使用
$.when
function f(x) {
  return x? 
    $.ajax({url: "http://myServer", data: x, ...})
    : /* what should be here? */;
}
return $.when(…);
return $.Deferrred().reject(new Error(…)).promise();