У меня проблема с вызовом AJAX для ответа на основную функцию.Прямо сейчас я использую async false, который, как я знаю, странный, и я пытаюсь решить его, но все время терплю неудачу.
Это работает (асинхронное ложное):
function printTable(){
var $table = $('#Table');
var view_data;
$.ajax({
type: "GET",
url: '/api/getdata',
success: function(response) {
var TableData = [];
for(var i =0;i < response.length ;i++){
var item = response[i];
var sessionID = item.sessionID;
if(sessionID){
$.ajax({
async: false,
type: "POST",
url: '/api/getNickname',
dataType: "json",
data: {
id: sessionID,
},
success: function(response){
view_data = response;
}
});
}
TableData.push({
_id: item._id,
datum: item.datum,
uhrzeit: item.uhrzeit,
session: view_data,
});
}
$table.bootstrapTable({data: TableData});
$table.bootstrapTable('togglePagination');
}
})
}
Я попробовал следующее предложение: Присвоение ответа ajax глобальной переменной без использования async: false , но это не так, какview_data не определено.
function printTable(){
var $table = $('#Table');
var view_data;
$.ajax({
type: "GET",
url: '/api/getdata',
success: function(response) {
var TableData = [];
for(var i =0;i < response.length ;i++){
var item = response[i];
var sessionID = item.sessionID;
if(sessionID){
$.ajax({
type: "POST",
url: '/api/getNickname',
dataType: "json",
data: {
id: sessionID,
}
}).done(function(response){
test(response)
});
function test(response){
view_data = response;
return view_data;
}
}
}
TableData.push({
_id: item._id,
datum: item.datum,
uhrzeit: item.uhrzeit,
session: view_data,
});
}
$table.bootstrapTable({data: TableData});
$table.bootstrapTable('togglePagination');
}
})
}
То, что я понял, это если я поставлю оповещение (view_data);до толчка это работает !?Я не настолько глубоко в JS / AJAX, как все еще изучаю его, поэтому я надеюсь, что кто-то может дать мне подсказку или может помочь .. Как я могу передать var view_data в основную функцию, не используя async false?
Спасибо...