【发布时间】:2011-12-16 14:28:42
【问题描述】:
我正在使用 jQuery $.when 函数来同步我拥有的两个 $.getJSON 异步调用。合并来自两个调用的数据现在可以正常工作,但是我想返回 merge 的内容,它是一个 jQuery 对象数组。
我正在尝试使用包裹在另一个函数中的$.when 函数来实现这一点,该函数包含我同步异步调用的代码。我的代码如下所示:
$.fn.getResultFromMergedJsonCalls = function(params){
$.when(
$.fn.jsonCall1(params), $.fn.jsonCAll2(params)
).then(function(){
var mergedData = mergeResults(resultOfJsonCAll1,resultOfJsonCAll2)
return mergedData;
});
};
)
如何将mergedData 数组的内容返回给调用函数,我知道异步调用的性质导致了这种行为,所以我只需要一个解决问题的模式。谢谢。
【问题讨论】:
-
你不能。它是异步的。您必须在传递给
.then的回调中处理结果,或者将其传递给从回调内部调用的函数。 -
你通常不会直接调用
$.fn函数。