gpt4 book ai didi

javascript - 异步循环 typescript 数组

转载 作者:行者123 更新时间:2023-11-30 07:50:32 25 4
gpt4 key购买 nike

我有一个 typescript 数组 this.products我需要遍历数组的元素,并为每个元素将参数发送到 Angular 服务,该服务进行 API 调用并作为 Observable 获取对客户端的答复。但是,由于 Observable 的异步特性,我的循环在所有答案从服务器发回之前就结束了。这是我的代码:

this.products.forEeach((ele, idx) => {
this.myService.getSomeDetails(ele.prop1, ele.prop2).subscribe(result => {
// do something with result
});
});

我需要循环仅在每个可观察订阅完成后才前进。我该如何实现?谢谢。

最佳答案

你要找的是forkJoin:

https://rxjs-dev.firebaseapp.com/api/index/function/forkJoin

将项目数组映射到 api 调用可观察对象数组,并将它们传递到 forkJoin。这将发出所有已解析的 api 调用的数组。

快速而肮脏的例子:

forkJoin(this.products.map(i => this.myService.getSomeDetails(ele.prop1, ele.prop2))).subscribe(arrayOfApiCallResults => {
// get results from arrayOfApiCallResults
})

关于javascript - 异步循环 typescript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53866071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com