我試圖跳過基于 ajax 回應的回圈迭代。我面臨的問題是我無法在 Ajax 呼叫之外使用來自 Ajax 的回應。目前我通過使用以下解決方案解決了它,但這里的問題是我async: false不推薦使用它,因為 Ajax 呼叫是異步的。
function ajaxCallHere(name) {
let url = '/admin/someUrl/' name;
var skipName = '';
$.ajax({
'url': url,
'type': 'GET',
async: false,
'success': function (data) {
skipName = data.skip;
}
});
return skipName;
}
function getAllNames() {
for (let i = 0; i < names.length; i ) {
var skipVal = ajaxCallHere(names.fullName);
if(skipVal == 'yes') {
continue;
}
}
}
uj5u.com熱心網友回復:
使用async/await, since$.ajax回傳一個遵守 Promise 協議的物件。
function ajaxCallHere(name) {
let url = '/admin/someUrl/' name;
return $.get(url);
}
async function getAllNames() {
for (let i = 0; i < names.length; i ) {
var data = await ajaxCallHere(names.fullName);
if (data.skipVal == 'yes') {
continue;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/498244.html
標籤:javascript jQuery 阿贾克斯
