目标是发出多个保存请求,然后使用另一个 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 个获取请求,并且我只想在所有保存完成后获取列表。