我有一个javascript函数,它等待多个ajax调用,然后将响应组合到一个javascript数组中。然后我需要从函数返回数组(数据),但不知道我该怎么做。
请对此有所帮助。
var myCombinedArray = fetchData();
function fetchData() {
var data = [];
$.when(fetchThisYearsData(),fetchLastYearsData()).done(function(dataThisYear, dataLastYear){
data[0] = dataThisYear[0];
data[1] = dataLastYear[0];
console.log(data);
});
return data;
}
我已经阅读了足够的知道myCombinedArray将为空,因为ajax是异步的,但我不知道如何实现我想要的结果。
感谢
我试图实现回调,但有点迷失。我收到错误“回调不是函数”。
$(function () {
var myCombinedArray;
fetchData(function (myCombinedArray) {
//what to do here?
});
console.log(myCombinedArray);
})
function fetchData(callback) {
$.when(fetchThisYearsData(), fetchLastYearsData()).done(function(dataThisYear, dataLastYear){
var data = [];
data.push(dataThisYear[0]);
data.push(dataLastYear[0]);
callback(data);
});
}
答案 0 :(得分:2)
您可以使用回调函数,该函数将在填充所有数据后调用
fetchData(function (myCombinedArray) {
//do your stuff
});
function fetchData(callback) {
$.when(fetchThisYearsData(), fetchLastYearsData()).done(function (dataThisYear, dataLastYear) {
var data = [];
data.push(dataThisYear[0]);
data.push(dataLastYear[0]);
console.log(data);
callback(data);
});
}
阅读更多