Redux 如何使用ngrx捕捉错误
我正在尝试捕捉ngrx和angularfire2 firetore的错误 这就是效果Redux 如何使用ngrx捕捉错误,redux,ngrx,ngrx-effects,Redux,Ngrx,Ngrx Effects,我正在尝试捕捉ngrx和angularfire2 firetore的错误 这就是效果 @Effect() delete$: Observable<Action> = this.actions$ .ofType(actions.DELETE) .map((action: actions.Delete) => action.id) .mergeMap(id => of(this.afs.doc
@Effect()
delete$: Observable<Action> = this.actions$
.ofType(actions.DELETE)
.map((action: actions.Delete) => action.id)
.mergeMap(id =>
of(this.afs.doc<Collection(`collections/${id}`).delete()))
.map(() => new actions.Success())
.catch(err => of (new actions.Fail(err.message )));
即使行动没有完成,我也会不断取得成功。做这件事的好方法是什么?目前,这段代码试图捕获整个流中的错误,而不是重要的内部可观察到的错误 试试这个:
@Effect delete$: Observable<Action> = this.action$
.ofType(actions.DELETE)
.map((action: actions.Delete) => action.id)
.mergeMap(id => {
return of(this.afs.doc<Collection(`collections/${id}`).delete())
.map(() => new actions.Success())
.catch(err => of(new actions.Fail(err.message))
});
@Effect delete$:可观察和。可能引发错误的流是可观察的(this.afs.doc…
的内部,因此.catch
应该位于该可观察的流上。在当前实现中(从上面的示例中),无论是否失败,它总是将(this.afs.doc…
的结果映射到新的actions.Success()
。当前,此代码试图捕获整个流中的错误,而不是重要的内部可观察到的错误
试试这个:
@Effect delete$: Observable<Action> = this.action$
.ofType(actions.DELETE)
.map((action: actions.Delete) => action.id)
.mergeMap(id => {
return of(this.afs.doc<Collection(`collections/${id}`).delete())
.map(() => new actions.Success())
.catch(err => of(new actions.Fail(err.message))
});
@Effect delete$:可观察和。可能引发错误的流是可观察的(this.afs.doc…
的内部,因此.catch
应该位于该可观察的流上。在当前实现中(从上面的示例中),无论是否失败,它都会将(this.afs.doc…)的结果映射到新操作.Success()
。感谢您的回复。不幸的是,我试过了,但没有达到预期效果。那么问题一定出在代码的其他部分。如果您的其余代码没有问题,那么我提供的代码就可以工作。我会查看.delete()
方法返回的内容,看看它是否已经是可观察的。感谢您的回复。不幸的是,我试过了,但没有达到预期效果。那么问题一定出在代码的其他部分。如果您的其余代码没有问题,那么我提供的代码就可以工作。我将研究.delete()
方法返回的内容,看看它是否已经是可观察的。