javascript - 如何链接返回 Promise 的 API 请求,该请求在数组中有一个字段?
问题描述
需要链接 API 调用,以便在第一个 API 调用 Promise 中返回的数据然后用于调用另一个 API 调用。Api 调用返回 Json 数据,然后使用数组格式的字段,其中每个数组调用另一个 API 调用,这继续到多个级别和几个 API 调用。我知道嵌套 API 调用是一种不好的做法,最好使用 async 和 await 或链接承诺?但是在返回的数据有一个数组的情况下,我想继续为该数组中的每个元素进行另一个 API 调用,每个元素都会导致多个带有数组数据的承诺,这再次需要对每个元素进行 API 调用,并且等等。
解决方案
为每个 API 调用创建一个 Promise 并使用 Promise.all 之类的东西
let urls = [
'https://api.com/product/1',
'https://api.com/product/2',
'https://api.com/product/3',
];
// map every url to the promise of the fetch
let requests = urls.map(url => fetch(url));
// Promise.all waits until all jobs are resolved
Promise.all(requests)
.then(responses => responses.forEach(
response => alert(`${response.url}: ${response.status}`)
));
推荐阅读
- django - 使用页码重定向回列表视图
- gf - 在 GF 中生成所有属格
- node.js - 为新手解释异步等待代码块。为什么 user.password_hash 为空?
- kubernetes - 在部署 Kubernetes 资源时更改 Pulumi 的超时时间
- swiftui - 我们如何在 SwiftUI 中安全地解包数据?
- haskell - 如何实现一个最优的、纯功能的、双端优先级队列?
- c++ - 如何从 char* 函数返回指针
- mysql - 在 Mysql 中翻译 sql server 中使用的 Merge 语句
- go - 使用 bufio.NewScanner 逐行读取文件时的性能问题
- python - 如何使用 Python 从 SQLite 中的 n 个不同表中获取最后 n 条记录