作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 httpRequest 编写 ngrx 效果,它使用 Action 的 action.payload。
从请求中我得到我在 map 运算符中使用的数据(如果发生错误我在 catchError 中处理它)
从后端我只得到 bool 值,我如何将 action.payload 从 Action 传播到 map 或 catchError 运算符?
例子:
effect= this.actions$
.ofType(Actions.IS_OK)
.pipe(
mergeMap(action => this.service.isOk(action.payload),
map((isOk: boolean) => new SuccessAction(isOk, action.payload), //here I need somehow get to action.payload value
catchError(error => of(new ErrorAction(error, action.payload))) //here I need somehow get to action.payload value
);
而且我无法存储有效负载来存储,因为我触发了更多操作:Actions.IS_OK
感谢帮助
最佳答案
使用一些较新的 rxjs/ngrx 语法,这可以写成:
isOkEffect$ = createEffect(() => this.actions$.pipe(
ofType(Actions.IS_OK),
mergeMap(({payload}) => this.service.isOk(payload).pipe(
map((isOk: boolean) => new SuccessAction(isOk, payload),
catchError(error => of(new ErrorAction(error, payload)))
))
));
关于angular - 如何将 ngrx-effect 中的 Action 的 action.payload 传播到 catchError 或 map 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51245123/
我是一名优秀的程序员,十分优秀!