Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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延迟_Javascript_Jquery_Jquery Deferred - Fatal编程技术网

Javascript 返回jQuery延迟

Javascript 返回jQuery延迟,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,在某种情况下,我不希望使用ajax请求查询服务器,而是希望立即返回一个空数组。 函数的返回类型必须是延迟的。(调用者能够链接。然后到调用)。 我得出了以下结论: if(noNeedForAjax) { var d = $.Deferred(); d.resolve([]); return d; } return $.when( ... 然而,令人惊讶的是,你不能在一行完成它。我原以为$.Deferred().resolve([])也会这样做,但显然不是这样 为什么不.

在某种情况下,我不希望使用ajax请求查询服务器,而是希望立即返回一个空数组。 函数的返回类型必须是延迟的。(调用者能够链接
。然后
到调用)。 我得出了以下结论:

if(noNeedForAjax) {
    var d = $.Deferred();
    d.resolve([]);
    return d;
}

return $.when( ...
然而,令人惊讶的是,你不能在一行完成它。我原以为
$.Deferred().resolve([])
也会这样做,但显然不是这样

为什么不
.resolve()
返回


有可能在一个return语句中实现相同的结果吗?

正如Andy所指出的,尝试不使用
return

if(noNeedForAjax) {
    var d = new $.Deferred();
    d.resolve([]);
    d;
};
或者,“一行完成”


希望这有帮助

看起来效果不错:文档中说,
resolve
返回一个延迟,所以我希望单行版本能够像Jason p的JSFIDLE中一样工作。不知道你为什么会遇到问题。什么是
d应该做什么?@Jason P
已解决
延迟
。它可能有助于发布什么是“链接的”
,然后发布什么是或可能是“延迟的”需求。谢谢。我知道
d
是一个已解决的延迟,但是表达式
d实际上什么都不做。@Jason P要求是什么?或者,在
解析
空数组之后,接下来需要什么?对于预期的
等,需求的下一步是什么?最初的问题提到返回一个空数组,但没有指定如何使用它;至少从最初的问题中似乎无法获得更多。请澄清。谢谢。顺便说一句-你甚至可以做得更短。You's idea有两个$。when,所以我只是将整个内容转换成一个
?:
语句:
$。when(noNeedForAjax?[]:$.ajax(…)。然后(…)
-when()可以接受一个对象并将其用作返回值。太棒了。
if (noNeedForAjax) {$.when(function() {return []})};