gpt4 book ai didi

angular - @angular @ngrx/effects HTTP 请求不断取消并重试

转载 作者:行者123 更新时间:2023-12-02 13:18:57 25 4
gpt4 key购买 nike

我有一个非常简单的效果,它发出一个 http 请求并在完成时分派(dispatch)一个操作。

HTTP 请求不断地被取消并一遍又一遍地重新发出。

enter image description here

最初我认为是 switchMap 导致了问题(取消可观察),所以我尝试使用 mergeMap (相同的结果)。

下面是我的效果代码。

signIn$ = this.actions$
.ofType(ACTIONS.AUTH.SIGN_IN)
.map(toPayload)
.map(payload => toInput(payload))
.switchMap(input => this.http
.post<Output>(`${GLOBALS.endpoint}/auth/authenticate`, input)
.map(output => ({ type: ACTIONS.APP.PUSH_NOTIFICATION, payload: "test" }))
.catch(error => of(createAction(ACTIONS.APP.LOG_EXCEPTION, error)))
);

上面的代码编译没有错误并且按预期工作,除了它不断取消和重新发出 http 请求。

我不知道这是否重要,但我使用的是 HttpClient (@Angular/common/http),而不是 @Angular/http。

如有任何建议,我们将不胜感激!

最佳答案

“switchMap”有自己的“取消订阅”机制取消 api 请求,

使用“flatMap”(或 mergeMap)应该适合您。

关于angular - @angular @ngrx/effects HTTP 请求不断取消并重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45421651/

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