首页 > 解决方案 > 我应该使用同步 AJAX 在触发其他任何内容之前加载所需的数据吗?

问题描述

假设我有一个名为index.txt的文件,其中包含一些重要的值,这些值需要满足触发函数的特定条件。所以,我使用 AJAX 加载index.txt的内容,但现在我遇到了问题。我知道同步 AJAX 已被弃用(如 Chrome 控制台中所示)并且不应该使用毕竟缺点远大于优点!但是,我不能使用异步,因为我的函数在执行其他任何操作之前需要数据。所以,我的问题是,我该怎么做?我应该为此使用同步 AJAX 吗?

标签: javascriptajaxasynchronoussynchronization

解决方案


你可以这样解决。如果你不想弄乱异步的东西。只需使用这个基本的回调模式。

let data = null;
const txtFilePath = '/data.txt';

function loadTxt() {
  const xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function () {
    if (this.readyState === 4 && this.status === 200) {
      data = this.responseText;
      afterGetTextDataStuffs();
    }
  };

  xhttp.open('GET', txtFilePath, true);
  xhttp.send();
}
loadTxt();

function afterGetTextDataStuffs() {
  console.log('txt data is loaded...');
  console.log(data);
}

推荐阅读