JavaScript 获取 API : accessing local variable globally

标签 javascript arrays variables global fetch-api

我正在开发一个使用 Fetch API 的项目。我想使用 fetch 从文本文件中获取一些数据并将它们放入数组中,以便我可以使用它们。我不确定使用什么代码使变量成为全局变量。我认为通过在 fetch 语句之外初始化变量,我也许可以这样使用它。这是我到目前为止所拥有的:

动物.txt

cat
dog
rabbit

index.js

const animalArray;
fetch('animals.txt')
    .then((res) => res.text())
    .then(data => {
      animalArray = data.split(/\r?\n/) //how can I access this outside of the fetch statement?
} 
})

最佳答案

一方面,您试图重新分配一个 const 声明,这是被禁止的。如果您希望代码正常工作,则必须将其更改为 let。然后,要使其成为全局的,请将其绑定(bind)到浏览器中的全局对象 window

然而,异步请求的原理是你想要等待数据到达才做某事,所以将fetch的结果放在全局作用域中用途非常有限,因为你希望能够知道数据什么时候到达已经到了。

为了做到这一点,您只需执行 fetch().then() 中要做的任何事情。 几乎总有一种更好的方法来处理异步数据,而不是污染全局范围并使用复杂的事件系统或超时检查特定全局变量中的更改。

关于JavaScript 获取 API : accessing local variable globally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50397473/

相关文章:

Javascript:返回切片元素

javascript - Highcharts Pie Chart Drilldown 未在第三次钻取中显示

java - 在 Java 中使用 { } 进行数组初始化

javascript - 数字可以用这种方式罗马化吗?

sql-server-2008 - SQL Server 2008 SELECT * FROM @变量?

android - Flutter-如何仅在 ListView 中显示选定的项目

javascript - 使用 CryptoJS 进行文件加密 - 客户端

javascript - NodeJS + Android,Socket.io 聊天,应用程序在用户离开聊天室时崩溃

javascript - 使用元素之一作为引用点从 Javascript 数组中选择元素

variables - 在 PhpStorm 中双击不选择美元 ($)?