javascript - 我应该使用同步 AJAX 在触发其他任何内容之前加载所需的数据吗?
问题描述
假设我有一个名为index.txt的文件,其中包含一些重要的值,这些值需要满足触发函数的特定条件。所以,我使用 AJAX 加载index.txt的内容,但现在我遇到了问题。我知道同步 AJAX 已被弃用(如 Chrome 控制台中所示)并且不应该使用毕竟缺点远大于优点!但是,我不能使用异步,因为我的函数在执行其他任何操作之前需要数据。所以,我的问题是,我该怎么做?我应该为此使用同步 AJAX 吗?
解决方案
你可以这样解决。如果你不想弄乱异步的东西。只需使用这个基本的回调模式。
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);
}
推荐阅读
- c - 为什么 EXT4/JBD2 挂载后一直调用 ext4_journal_stop?
- asp.net - 如何在 global.asax 中实现反伪造令牌?
- node.js - 无法使 passport-saml 与 ADFS 一起使用
- javascript - 将代码表单回调重写为异步等待
- docker - 保护/加密敏感的环境变量
- vb.net - VB.net - 将 PDF 字节转换为字符串
- javascript - 无法将 css 宽度断言为 100%
- angular - 获取错误“检查后表达式已更改”禁用离子项
- r - 如何(迭代地)将列表元素保存到数据框中?
- vba - 如何在每个循环中获取单元格的行号