ngrx 效果 - 两个 http api 效果相同

ngrx effect - two http api in same effect

我使用 update api (这个 api returns 对象的 id 更新对象的一部分,我有以下效果,然后我使用 findById api 获取整个对象,我将 api 更新的结果作为参数传递给它,问题是我第一次更新 findById api returns 没有更新的对象,知道更新完成了

@Effect()
updateScopeCoverage$ = this.actions$.pipe(
    ofType<networksActions.PatchScopeCoverage>(networksActions.NetworkActionTypes.PATCH_SCOPE_COVERAGE),
    map(action => action.payload),
    exhaustMap(scopeCoverage => this.apiNetwork.update({ updateScopeCoverageRequest: scopeCoverage }).pipe(
        switchMap(id => this.apiNetwork.findById({ externalId: id }).pipe(
            map((network: Network) => new networksActions.PatchSuccess({
                id: network.externalId,
                changes: network
            })),
        )),
        catchError(err => {
            alert(err.message);
            return of(new networksActions.Failure({ concern: 'PATCH', error: err }));
        })
    ))
);


findById(args: { externalId: string }): Observable<models.Network> {
        const path = `/networks/v1.0/${args.externalId}`;
        return this.http.get<models.Network>(`${this.domain}${path}`);
}

如果我理解正确 - 后端 returns 旧数据,是否正确?因为效果看起来不错。它发送更新请求,等待响应,然后发送 findById,等待它并调度 PatchSuccess 操作。顺序是正确的。我会 console.log 什么后端 returns 如果它 returns 旧数据 - 这意味着后端有缓存或复制。例如,尝试在 switchMap(id => findById) 之前放置 delay(1000),如果有效,则 100% 是后端问题。