【问题标题】:How to fit JSON.parse into Promise.all?如何将 JSON.parse 放入 Promise.all?
【发布时间】:2017-08-19 18:02:37
【问题描述】:

我得到这个代码来从 Riot Games League of Legends API 中检索一批比赛:

const matches = await Promise.all(matchlist.matches.map(function(match){
    return qRequest(server, "/match/v3/matches/" + match.gameId);
}));

返回值是一个 JSON 格式的字符串。所以matches 最终成为一个 JSON 字符串数组。我需要解析 JSON,所以匹配是一个对象数组。

我只是想不通如何在这里适应 JSON.parse?

【问题讨论】:

  • 你为什么用Promise.all,你有多个promise吗?
  • @MrAlb:OP 知道JSON.parse。他们不知道如何在此处应用它:“我只是想不通如何在这里适应 JSON.parse?”
  • @FelixKling 是的,你是对的,我投票赞成你的回答;)

标签: javascript json promise


【解决方案1】:

您可以将Array#map 申请到matches

let matches = ... ;
matches = matches.map(json => JSON.parse(json));

或致电JSON.parse inline:

const matches = await Promise.all(matchlist.matches.map(function(match){
  return qRequest(server, "/match/v3/matches/" + match.gameId)
    .then(json => JSON.parse(json));
}));

【讨论】:

  • 我知道之后可以再次映射它,但我认为必须有一种更优雅的方式而不是两次映射。第二个看起来不错。
猜你喜欢
  • 2021-09-30
  • 1970-01-01
  • 2021-10-08
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多