javascript - 如何在ajax成功方法中获取数组值?

标签 javascript jquery ajax for-loop scope

我想重定向到ajax之后最快的URL调用了所有 URL,但是当我警告该值时,我得到 undefined :

var servers = ["url1", "url2", "url3"];
for (var i = 0; i < servers.length; i++) {
  $.ajax({
    type: "GET",
    url: servers[i],
    data: {},
    cache: false,
    success: function(output) { 
      // window.location.href = servers[i]
      alert(servers[i]);
    }
  });
}

最佳答案

您可以使用Promise.race代替迭代。 MDN

const servers = ["url1", "url2", "url3"];
const requests = servers.map(server => $.ajax({...}));

Promise.race(requests)
    .then(/* handle the fastest request */)
    .catch(/* catch error here */)

关于javascript - 如何在ajax成功方法中获取数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62084782/

相关文章:

javascript - 文本区域 Shift+Enter 进入下一行并 Enter 提交表单

javascript - Angular JS 是传统 jQuery AJAX 的替代品吗?

php - 表单/PHP/Ajax 加载?

javascript - 在 jquery 中检查复选框

jquery - 更新每个 JSON 值的 HTML 值

javascript - Stellar.js 不工作

c# - 在 ASP.Net Repeater 的 jQuery 工具提示中显示 Html 内容

javascript - 如何使 form.submit 在 Javascript 引用中分隔发布数据的名称和值

javascript - ember js获取多个复选框值

javascript - 在一个提示中包含 2 个相同的 Jquery 单选按钮