javascript - 如何在 javascript 中处理两个 API 调用?
问题描述
我对javascript很陌生,我正在使用jeopardy api来解决危险问题,这就是我所拥有的
var request = new XMLHttpRequest();
request.open('GET', 'http://jservice.io/api/categories?count=6', true)
var arr = []
var clues = []
request.onload = function() {
var data = JSON.parse(this.response)
data.forEach(cat => {
console.log(cat)
arr.push(cat.id)
})
for (var i = 0; i < 6; i++) {
var base = "http://jservice.io/api/category?id="
var clueRequest = base.concat(arr[i])
console.log(clues.push(clueRequest))
}
}
request.send()
问题是我现在想进入我的线索列表并请求这些 json,因为它们包含问题。我该怎么做呢?
解决方案
这是一个如何一次执行多个数据调用的示例。
在这种情况下,我使用了带有 async/await 功能的 fetch API。
我从 jeopardy api 获取数据,然后映射数据以设置一组 fetch promise。然后我用await Promise.all()
等待数据返回。在这一点上,我们有一个线索对象数组。
async function getData() {
const data = await (await fetch('https://jservice.io/api/categories?count=6')).json()
const cluePromises = data.map(clue => fetch(`https://jservice.io/api/category?id=${clue.id}`).then(request => request.json()));
const clues = await Promise.all(cluePromises);
console.log(data);
console.log(clues);
}
getData();
推荐阅读
- corda - 如何阻止来自 Corda 网络上其他节点的流量?
- arm - 带手臂调试的刀具
- python-3.x - 将字典数据中的每个键拆分为堆栈和分组
- json - 有没有办法使用 Go 将 JSON 字符串转换为 Mongo 扩展 JSON?
- azure-cosmosdb - 对分区键字段的查询跨越 Cosmos DB 中的多个分区
- c# - 为外键赋值时 POCO 导航属性未更新
- c - C - 重新分配指向结构组件(类型指针)的指针被中止(核心转储)
- gradle - Gradle 6.1 没有找到 com.moowork.gulp 插件
- height - 在水平条形图中设置最大条形高度
- php - 当 json 值包含“<”时 PHP 为空 curl 响应