【发布时间】:2019-10-30 06:09:21
【问题描述】:
我有一个函数,它在调用时应该并行发出多个 http 请求。 在下面的代码中,我有一个元素数组。我需要为每个元素调用 patchElements 方法并调用 updateData。当我运行它时,只会在 updateData 中进行 http 调用,但如果我在 patchElements 中 console.log 一些东西,它就会被打印出来。
我不确定我做错了什么。
updateCriteria(id, values, elements) {
return forkJoin(
elements.map((el) => this.patchElements(rtId, values, el)),
this.updateData(id, values)
).pipe(
tap(() => {
// do something
}),
catchError((err) => {
// do something
).subscribe();
}
patchElements(id, values, elements) {
return this.http.patch(*url*);
}
updateData(id, updates) {
return this.http.put(*url*);
}
【问题讨论】:
-
我想指出您应该更改您的 updateData 端点,以便它可以将数组作为参数。这样,您只需执行一次昂贵的网络往返,而不是与您的元素一样多次。