Jquery 是否可以在$.when().done()中使用带有ajax调用的函数?

Jquery 是否可以在$.when().done()中使用带有ajax调用的函数?,jquery,ajax,.when,Jquery,Ajax,.when,我不确定我到底遵守了延迟、承诺和$.when()的工作方式。我已经通读了,但我很好奇带有ajax调用的函数是否可以在$.when()中使用 我在文档中看到了这个示例: $.when( $.ajax( "test.aspx" ) ).then(function( data, textStatus, jqXHR ) { alert( jqXHR.status ); // Alerts 200 }); 这也是可以接受的方法吗 $.when( $.ajax( anotherFunction() )

我不确定我到底遵守了延迟、承诺和
$.when()
的工作方式。我已经通读了,但我很好奇带有ajax调用的函数是否可以在
$.when()中使用

我在文档中看到了这个示例:

$.when( $.ajax( "test.aspx" ) ).then(function( data, textStatus, jqXHR ) {
  alert( jqXHR.status ); // Alerts 200
});
这也是可以接受的方法吗

$.when( $.ajax( anotherFunction() ) ).done(
//on completion of the ajax call inside "anotherFunction()" do something here.
);

anotherFunction(){$.ajax...do some ajax stuff here.}
我正在查看的具体案例是加载可用仪表板的列表,然后在前端填充该列表后,从列表中捕获特定仪表板并为其运行加载函数

我发现它不会坏并且会运行(也许?),但我不知道这是否是正确的编码方式,或者它只是不工作并且不会同时坏

谢谢你在这方面的建议和专业知识

-杰夫

[…]如果可以在$.when()内使用带有ajax调用的函数

如果您跳过周围的
$.ajax
,并且函数本身返回
$.ajax
-调用,那么您的示例将起作用。如果您传递给
$。当
不是延迟时(在您的情况下,函数返回undefined),它将立即解析,我认为这不是您想要的。此外,
$.when
在您只有一个延迟项时是没有意义的。如果您的函数将返回
$.ajax
,您可以执行类似
另一个函数().done(…)
的操作

我看到的具体案例是加载可用仪表板的列表,然后在前端填充该列表

事实上,这就是
$背后的想法。当
时:等待多个延迟完成。您可以将它们作为参数传递,例如

let d1 = $.ajax(...);
let d2 = $.ajax(...);

$.when(d1, d2).done(...)

但是,如果您只有一个ajax调用,则不需要
$。当
$。当
是进行单个ajax调用的标准时。。。当需要的数据可用时,只需在第一个调用的回调中进行第二个调用,但OP询问的是相关的ajax调用,而不是串行调用