gpt4 book ai didi

effects - @ngrx Effect 没有第二次运行

转载 作者:行者123 更新时间:2023-12-04 01:37:37 31 4
gpt4 key购买 nike

我刚刚开始了解@ngrx/store 和@ngrx.effects,并在我的Angular/Ionic 应用程序中创建了我的第一个效果。它第一次运行正常,但如果我再次将事件发送到商店(即再次单击按钮时),什么也没有发生(没有进行网络调用,控制台日志中没有任何内容)。有什么明显的我做错了吗?效果如下:

@Effect() event_response$ = this.action$
.ofType(SEND_EVENT_RESPONSE_ACTION)
.map(toPayload)
.switchMap((payload) => this.myService.eventResponse(payload.eventId,payload.response))
.map(data => new SentEventResponseAction(data))
.catch((error) => Observable.of(new ErrorOccurredAction(error)));

谢谢

最佳答案

听起来好像发生了错误。在这种情况下,catch 返回的 observable 中的 Action 将被发射到效果的流中,然后效果将完成 - 这将阻止效果在发出错误操作后运行。

移动mapcatch进入switchMap :

@Effect() event_response$ = this.action$
.ofType(SEND_EVENT_RESPONSE_ACTION)
.map(toPayload)
.switchMap((payload) => this.myService
.eventResponse(payload.eventId, payload.response)
.map(data => new SentEventResponseAction(data))
.catch((error) => Observable.of(new ErrorOccurredAction(error)))
);

撰写 catchswitchMap 内如果发生错误,将阻止效果完成。

关于effects - @ngrx Effect 没有第二次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180361/

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