我有一个javascript函数,如下所示:
function foo() {
var returnPromise;
$.when(asyncMethod1(), asyncMethod2()).then(
function() {
//… process results from method1 and 2
returnPromise = $.when(asyncMethod3(), asyncMethod4()).then(
function() {
finalMethod();
}
);
});
return returnPromise;
}
上面的代码不起作用,因为foo()将在returnPromise被分配之前退出。 asyncMethod3和4只能在asyncMethod1和2完成后执行。关于如何构建我的javascript函数的任何建议?
答案 0 :(得分:3)
您可以链接then
次来电。
function foo() {
return $.when(asyncMethod1(), asyncMethod2()).then(function(resultOf1, resultOf2) {
return $.when(asyncMethod3(), asyncMethod4());
});
}
foo().then(function finalMethod(resultOf3, resultOf4) {});
注意:您不必命名函数表达式,为清楚起见,我这样做了。