javascript - 如何解析 JSON 并将其存储在外部变量中?

标签 javascript jquery json asynchronous fetch

我只是想加载 JSON 并存储到变量/数组,以便我可以加载 JSON api 一次并使用该数组进行处理。有没有办法获取 JSON 并将其存储到我可以在 fetch() 或 $.getJSON 异步函数之外访问的变量?

我已经想出了下面的代码,但我担心每次我调用函数“test”时它都会加载 JSON api。我说得对吗?

 function test(callback) {
  $.getJSON('myURL', function (data) {
    callback(data);
  });
}

test(function (data) {
  console.log(data);
});

最佳答案

如果 myURL 处的数据没有改变,那么一种选择是让 test 缓存解析值(或 Promise),这样就只有一个网络请求被处理。 made(并且,为了方便异步使用,请使用 fetch,它返回 native Promise):

const test = (() => {
  let prom = null;
  return () => {
    if (!prom) {
      prom = fetch('myUrl').then(res => res.json());
    }
    return prom;
  };
})();
test()
  .then((data) => {
    console.log(data);
  });

关于javascript - 如何解析 JSON 并将其存储在外部变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965428/

相关文章:

javascript - 如何在特定条件下显示 ng-repeat 数据 - AngularJS

javascript - 在 Javascript 中将数字转换为固定数字表示形式

javascript - 通过 AJAX 加载时启用自动完成

javascript - javascript中的动态值到对象中

滚动时 jQuery 更改背景图像

c# - 使用 C# 反序列化 JSON

php - 我如何从另一个域(跨域)获取由php脚本生成的html

javascript - 离线 HTML5 .html 页面 - 需要将文件包含到另一个文件中

javascript - Ajax调用错误跨源请求: Pulling list of universities for autocomplete in rails

javascript - 在使用 Crud 1.1 和 jqgrid 方面需要帮助