У меня есть функция, где я выполняю несколько асинхронных вызовов функций. handleData
Функция возвращает объект Json. Мне нужно использовать эти разные объекты Json в методе draw
. Любая идея, как передать значения результата методу draw? Буду признателен за любую помощь. Вот мой код:Как вернуть ответ от множества асинхронных вызовов функций?
var publicationData = new Array();
var researchers = [];
var year = [];
var title = [];
var pub = [];
var dataJson = [];
callServerAsync();
function callServerAsync(){
$.get('Year2014.html').then(function(responseData) {
var result1 = handleData(responseData, dataJson);
});
$.get('tauchi_publications.html').then(function(responseData) {
var result2 = handleData(responseData, dataJson);
});
//TO-DO
//draw(result1, result2);
}
function handleData(responseData, dataJson){
var htmlObject = document.createElement('div');
htmlObject.innerHTML = responseData;
pub = htmlObject.getElementsByClassName("julkaisu");
getPublicationData(pub);
getResearchersYearTitle(publicationData);
dataJson = createJson(researchers,year,title);
return dataJson;
}
function draw(result1,result2){
result1.concat(result2);
}
Когда я печатаю результаты result1 и result2 в методе рисования, я вижу, что они имеют одинаковый контент. Объекты Json конкатенируются без использования метода concat. Почему вы думаете, что это так? – supaplex
Я могу сделать изолированную скрипку, чтобы показать вам, что приведенный выше код работает так, как было объявлено, если бы это вас уверяло. Похоже, что ваша функция 'handleData' неверна - зачем это нужно для параметра dataJson? В общем, я не понимаю, что вы там делаете. –