angular - Http post调用并等待foreach内部的响应并使用observables / angular触发下一个调用
问题描述
//我有一个数组,我正在使用 foreach 循环并进行 http post 调用。事情是我需要等待成功/错误响应并触发第二个 http 调用,然后从数组索引中触发第三个。我尝试使用 forkJoin 但它会在数组本身的末尾触发响应。有人可以帮我解决这个问题吗?
我的示例代码如下所示:
let cars= [
{
color:'red',
brand:'honda'
},
{
color:'white'
brand:'audi'
}
];
//Component
let observables = cars.map(car => this.carService.getCarByBrand(car));
// forkJoin the array/collection of observables
let source = Observable.forkJoin(observables);
source.subscribe(x => console.log(x);
//Component
//trigerring point
return this.carQuestion().do(response => {
selectedCar = response;
});
private carQuestion(){
let observables = cars.map(car =>
this.carService.carSelection(this.language, car));
let source = concat(...observables);
source.subscribe(x => console.log(x));
}
//carService
//carSelection should trigger on each call and wait for the response
carSelection(language: string, car){
//post call where it opens modal. Note if i send a single response
// without the cars loop it works fine
return this.inputService.getInput(
inputService.mapper,
).flatMap(response => {
if (response.yes) {
return Observable.of({
selectedCar: response.data,
});
}
else {
return Observable.of(null);
}
}).first();
}
谢谢!
解决方案
推荐阅读
- python - Python 和 Seaborn 如何使用 barplot 绘制两个分类特征
- android - Android kotlin 协程从生命周期范围返回对象
- unity3d - 在多人 Unity 中创建团队
- c++ - 我写了一个模拟 Enigma 机器的 C++ 程序。我没有得到输出
- php - WordPress“在安全页面上加载混合(不安全)显示内容”
- python-3.x - 如何转换月份python中的日期?
- javascript - Firebase/Telegram 发布请求
- r - 如果它们在 R 中是多维的,如何展平所有(嵌套)元素?
- c++ - 边界球卡在原位
- javascript - 处理表单后更改 onclick 函数的位置