我们可以通过ofActionErrored()来处理ngxs @Action错误,而不会违反默认" ErrorHandler"?

时间:2018-06-04 04:50:14

标签: ngxs

我有throwsError()

的异步ngxs操作

我希望默认的错误处理机制忽略这个抛出的错误,因为我将通过ofActionErrored()在我的代码中处理它。但是,对于其他操作,仍应执行默认错误处理。

现在,ofActionErrored()和默认错误处理(通过Angular / Ionic)都会尝试处理错误。

我能想到的替代方案是从最初调度的动作中调度Xxx_SUCCESS和Xxx_ERROR动作,如果我能帮助它,我想避免这种行为。

建议表示赞赏。

2 个答案:

答案 0 :(得分:2)

在NGXS存储库中有一个功能请求引起了类似的关注。我们已经在核心团队会议上进行了讨论,我们将重点关注下一个版本。您可以在此处提供您的反馈意见:https://github.com/ngxs/store/issues/1691

答案 1 :(得分:0)

您可以使用ofActionCompleted,如果存在错误,则可以提供错误。我正在处理的代码示例:

this.actions$.pipe(
  ofActionCompleted(GetMe)
).subscribe((data) => {
  const errorStatus = data.result.error['status'];

  if (!data.result.successful && errorStatus === 403) {
    this.snackbar.openFromComponent(TranslateSnakeBarComponent, {
      data: {message: 'USER_DISABLED'}
    });
  }
});