Wie rufen Sie mehrere Methoden von JavaScript auf
Posted: 12 Apr 2025, 15:52
Ich habe eine Methode in JavaScript und in dieser Methode muss ich drei Methoden auf dem Server aufrufen, und jeder gibt einen Teil einiger Daten zurück. Anschließend muss ich eine andere Methode in JavaScript aufrufen und alle drei Ergebnisse vom Server übergeben. < /p>
Können Sie mir bitte helfen?
Code: Select all
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>
Dies funktioniert, aber ich denke, dies ist der schlechteste Weg, wie es geht. Ich warte darauf, dass jeder Anruf einen anderen anruft. Und es dauert einige Zeit.
Ich habe versucht, es zu Versprechen umzuschreiben, aber leider funktioniert es nicht.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')
});