【问题标题】:Promise.all to fetch JSON Datas is Empty获取 JSON 数据的 Promise.all 为空
【发布时间】:2022-08-17 15:03:25
【问题描述】:

在我的代码中,我试图从两个 JSON 文件中获取数据并将它们作为数组返回。我做了下面的解决方案,但没有奏效。我应该怎么做才能将这些阵列记录到控制台并实现我想要的?

TS:

  requests = [
    \'data/products.json\',
    \'data/categories.json\',
  ];

  constructor(private _http: HttpClient) {
    const x = Promise.all(this.requests.map((url) => fetch(url))).then(
      async (res) => Promise.all(res.map(async (data) => await data.json()))
    );
    console.log(x);
  }
  • 我认为您将其复杂化了...很难阅读该代码
  • 我没听懂,什么意思?

标签: javascript angular typescript promise


【解决方案1】:

Promise.all 的结果是空的,因为在您记录时它还没有解决。您应该await 它或在.then 捕获结果。

我会将其重写为const x = await Promise.all(...),例如假设constructor 可以变为async

【讨论】:

    猜你喜欢
    • 2019-07-20
    • 1970-01-01
    • 2014-08-25
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2012-01-09
    • 1970-01-01
    相关资源
    最近更新 更多