Как вы называете несколько методов из JavaScriptJavascript

Форум по Javascript
Ответить
Anonymous
 Как вы называете несколько методов из JavaScript

Сообщение Anonymous »

У меня есть метод в JavaScript, и внутри этого метода мне нужно вызовать три метода на сервере, и каждый вернет часть некоторых данных, а затем мне нужно вызвать другой метод в JavaScript и передать все три результата с сервера. < /p>

Код: Выделить всё

function LoadMAData(sessionId) {
$.ajax({
url: 'Home/GetDataA',
type: 'GET',
dataType: 'json',
data: {
sessionId: sessionId
},
success: function (dataA) {
$.ajax({
url: 'Home/GetDataB',
type: 'GET',
dataType: 'json',
data: {
sessionId: sessionId
},
success: function (dataB) {
$.ajax({
url: 'Home/GetDataC',
type: 'GET',
dataType: 'json',
data: {
sessionId: sessionId
},
success: function (dataC) {
ShowMAs(dataA, dataB, dataC);
}
});
},
error: function (err) {
console.log(err.responseText);
}
});
}
});
}
< /code>
Это работает, но я чувствую, что это худший способ, как это сделать, я жду, пока каждый вызов закончит и позвоню другому. И это занимает некоторое время.
Итак, я попытался переписать его на обещания, но, увы, это не работает. < /P>
var promises = [];
let dataA;
let dataB;
let dataC;
promises.push(function () {
$.ajax({
url: 'Home/GetDataA',
type: 'GET',
dataType: 'json',
data: {
sessionId: sessionId
},
success: function (_data) {
dataA = _data;
return 1;
}
});
});
promises.push(function () {
$.ajax({
url: 'Home/GetDataB',
type: 'GET',
dataType: 'json',
data: {
sessionId: sessionId
},
success: function (_data) {
dataB = _data;
return 2;
}
});
});
promises.push(function () {
$.ajax({
url: 'Home/GetDataC',
type: 'GET',
dataType: 'json',
data: {
sessionId: sessionId
},
success: function (_data) {
dataC = _data;
return 3;
}
});
});
Promise.all(promises).then(x => {
ShowMAs(dataA, dataB, dataC);
}, err => {
console.log('error')
});
Можете ли вы мне помочь, пожалуйста?

Подробнее здесь: https://stackoverflow.com/questions/795 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»