typescript - 10 个错误后 NgRx 效果 "dies"

标签 typescript error-handling rxjs ngrx ngrx-effects

在Angular项目中使用NgRx,我有以下效果:

let i = 0

@Injectable()
export class Effects {
    testEffect$ = createEffect(
        () =>
            this.actions$.pipe(
                tap(() => console.log("action number:", i += 1)),
                mergeMap(() => throwError(() => "")),
            ),
        { dispatch: false, useEffectsErrorHandler: true },
    )

    // ...

对于分派(dispatch)的任何操作,效果都会记录一条语句,然后用错误替换其内容。

这适用于 10 个操作。恰好分派(dispatch) 10 个操作后,第 11 个操作将不再导致 console.log。事实上,不再执行任何效果,Redux Dev 工具也不会记录从那时起的任何操作。

我意识到,如果我预计会发生错误,我应该使用catchError来优雅地处理它们。然而,让我担心的是,如果有一个错误我没有处理,它可能会在发生几次后破坏我的整个应用程序。

为什么会发生这种情况?有什么办法可以预防吗?

最佳答案

这是预期的行为。

我们发现这对于大多数项目来说是一个很好的起点。

您可以通过创建自己的错误处理程序并配置 Effects 来使用它来覆盖此行为。

有关详细信息和示例,请参阅 https://ngrx.io/guide/effects/lifecycle#customizing-the-effects-error-handler

关于typescript - 10 个错误后 NgRx 效果 "dies",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76899771/

相关文章:

angular - Webpack 模块解析

typescript - protobuf.js pbts : Generating typescript types from . 原型(prototype)不带 null |不明确的

typescript - 有没有办法在 tsconfig 中使用 --esModuleInterop 而不是将其用作标志?

javascript - 与抛出错误相反,ES6函数的默认参数如何返回未定义的?

asp.net-mvc - 如何在带有 typescript 和 ASP.Net Core 的几个 html 页面中使用 vuejs 2

error-handling - 将错误从 `try_into()` 转换为自定义错误

r - R-将向量/矩阵作为行添加到另一个数据帧

javascript - Angular 7 map 运算符无法与 httpClient Observable 一起使用

javascript - RxJS 如何从两个 promise 中获取第一个不为空的值

Angular - "has no exported member ' 可观察'”