【发布时间】:2014-06-20 11:55:39
【问题描述】:
我希望函数 A 完成执行,并且只有在函数 B 开始执行之后。当我调用函数 A 然后调用函数 B 时,似乎两者都在同时执行。在函数 B 完成后,我想调用第三个函数 update_dropdown()。
我的代码如下所示:
function A {
for (var i = 0; i < 5; i++) {
var promise = $.get(url+i);
$.when(promise).then(function () {
$.post(url);
});
}
}
function B {
var x = $.get(url);
var promise = $.post(url+x);
$.when(promise0).then(function () {
update_dropdown();
});
}
请您告诉我如何让这 3 个函数调用按顺序进行。
【问题讨论】:
-
不完全确定你的目标是什么,你能再解释一下吗?
-
假设:1.你调用函数A,想等待$.get完成,然后你想调用函数B,最后一旦B完成你想调用update_dropdown()?跨度>
-
如果你想要一个准确的答案,你真的必须详细说明你想要的调用顺序是什么。您的代码没有多大意义(而且它是伪代码),因此不清楚您真正希望事情发生的顺序。例如,在
A()中,您想要五个$.get()并行操作,然后当它们全部完成时,$.post()操作?在B(),你真的想做$.get(),然后不等待任何事情,做$.post()吗? -
是的@Pepto 你的假设是正确的,“你调用函数 A,想要等待 $.get 完成,然后你想要调用函数 B,最后一旦 B 完成你想要调用 update_dropdown ()"
-
在函数 A 中,我想要 5 个连续的 get&post 请求。先获取后发帖。这必须发生5次。然后函数-B,必须执行。在 B 中有一个 $get,我从中获得一些价值,然后发布该价值。 (抱歉这部分没有显示在我的代码中,造成了一些混乱。)然后调用函数 update_dropdown()。
标签: javascript jquery object promise deferred