gpt4 book ai didi

angular - ngrx 效果中的 switchMap 取消选项 http 请求

转载 作者:行者123 更新时间:2023-12-03 21:23:12 25 4
gpt4 key购买 nike

我有一个这样的 ngrx 效果:

@Effect()
throwError$: Observable<Action> = this.actions$.pipe(
ofType<notificationActions.ErrorThrow>(
notificationActions.ActionTypes.ThrowError
),
tap(() => {
this.store.dispatch(new masterActions.LoadingHide());
this.sub = this.devTools.liftedState.subscribe(data => {
this.errorLogService.addErrorLog(JSON.stringify(data)).subscribe(data2 => console.log('data2', data));
console.log(JSON.stringify(data));
});
}),
map(action => action.payload),
tap(() => {
this.sub.unsubscribe();
}),
mergeMap(error => {
return of(
new notificationActions.ErrorAdd({
type: error.type,
description: error.description
})
);
})
);

errorLogService 的 addErrorLog 方法发送一个 http post 请求,将错误日志存储到数据库中。一切都在执行这样的请求,首先是选项请求,然后是发布请求,但是如果我切换到 switchMap 以组合两个可观察对象,则当我在 chrome 开发工具的网络选项卡上检查它时,选项请求将被取消。

这是重构的代码部分
tap(() => {
this.store.dispatch(new masterActions.LoadingHide());
this.sub = this.devTools.liftedState
.pipe(
switchMap(data => {
console.log('data', data);
return this.errorLogService.addErrorLog(JSON.stringify(data));
})
)
.subscribe();
})

任何线索?

最佳答案

我遇到了同样的问题。更换 switchMapmergeMap为我做的,现在每个 HTTP 请求都在等待完成。

关于angular - ngrx 效果中的 switchMap 取消选项 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com