我正在创建一个可观察数组。
for (let i = 0; i < userinput.length; ++i) {
const data = this.transformData(userinput[i]);
observableBatch.push(this.http.post(this.submitApi, data, requestOptions).map(dataresponnse => dataresponnse.json() ,err => console.error(err))
.catch(error => Observable.of(error) ));
}
return Observable.forkjoin(observableBatch);
答案 0 :(得分:1)
对阵列进行构造,使其像您一样将参数逐个传递给forkJoin
:
return Observable.forkJoin(...observableBatch);
例如,这相当于:
return Observable.forkJoin(obs1, obs2, obs3, obs4, etc);
返回的映射值应该是一个数组,其结果与传递的顺序相同:
observable.subscribe(t=> { console.log(t[0]) /*res1*/,
console.log(t[1]) /*res2*/,
console.log(t[2]) /*res3*/,
console.log(t[3]) /*res4*/,
etc... })
答案 1 :(得分:0)
您可以使用unshift代替使用push。 它将在第一个索引中添加您的最后一个HTTP呼叫后数据。 因此,您可以轻松预测上一个HTTP帖子的索引。