我必须进行 2 次 api 调用,我希望第一次调用完成,然后第二次调用按顺序开始。第二次通话对第一次通话没有任何依赖性。这两个调用都会更新数据库。如果我使用下面的代码,则会多次更新第二次调用,因为它正在尝试多次更新相同的记录,我希望避免。任何帮助表示赞赏。
updateUserCommentsObservable(): Observable<any> {
if (!this.userComments) {
return EMPTY;
}
const source = this.arrayGroupBy<TrailerComparisonUserComment>(
this.userComments,
comment => comment.trailerComparisonId);
return from(Object.keys(source)).pipe(
mergeMap(x => this.trailerComparisonService.updateUserComments(
x, source[x])
)
);
}
this.updateUserCommentsObservable().pipe(
flatMap(() => from(this.trailerComparisons).pipe(
mergeMap(trailerComparison =>
this.trailerComparisonService.saveReviewComplete(
trailerComparison.trailerComparisonId))
)
)
).subscribe(() => {
this.userComments = [];
this.disableStage1Review = true;
let snackBarRef = this.snackBar.open('Well done! Stage1 Review Complete has been successfully saved.', 'Dismiss');
}, error => {
console.log("Error", error);
let snackBarRef = this.snackBar.open('Error! ' + error.error.message, 'Dismiss');
});