RxJS 发出多个 AJAX 请求,然后使用另一个 AJAX 请求获取一个新列表
RxJS make multiple AJAX requests then get a new list with another AJAX request
目标是发出多个保存请求,然后使用另一个 ajax 请求获取新列表。我有以下似乎是我想要的,但想知道是否有更好的方法
of(1,2,3)
.pipe(
concatMap(vals => vals),
concatMap(val => this.ajax.save(val)),
takeLast(1)
)
.pipe(
switchMap(() => this.ajax.get()),
take(1)
)
.subscribe(result => {
// do stuff
});
扑救的结果并不重要。保存后得到的新结果就是我需要使用的结果。我使用了 takeLast(1),因为如果我不这样做,列表中的每个项目都会有一个获取请求。在上面的示例中,我有 3 个获取请求,我只想在所有保存完成后获取列表。
怎么样
combineLatest([1,2,3].map(val => this.ajax.save(val))).pipe(
switchMap(resultsArr => this.ajax.get())
).subscribe(newVal => {});
目标是发出多个保存请求,然后使用另一个 ajax 请求获取新列表。我有以下似乎是我想要的,但想知道是否有更好的方法
of(1,2,3)
.pipe(
concatMap(vals => vals),
concatMap(val => this.ajax.save(val)),
takeLast(1)
)
.pipe(
switchMap(() => this.ajax.get()),
take(1)
)
.subscribe(result => {
// do stuff
});
扑救的结果并不重要。保存后得到的新结果就是我需要使用的结果。我使用了 takeLast(1),因为如果我不这样做,列表中的每个项目都会有一个获取请求。在上面的示例中,我有 3 个获取请求,我只想在所有保存完成后获取列表。
怎么样
combineLatest([1,2,3].map(val => this.ajax.save(val))).pipe(
switchMap(resultsArr => this.ajax.get())
).subscribe(newVal => {});