【发布时间】:2018-02-09 15:54:58
【问题描述】:
我有一个 Observable 我想继续执行直到:
1) uploadActions.MARK_UPLOAD_AS_COMPLETE 动作是用特定的有效载荷调用的
或
2) 使用任何有效负载调用 uploadActions.UPLOAD_FAILURE 操作
这是我所能得到的(但不起作用):
return Observable.interval(5000)
.takeUntil(
action$
.ofType(
uploadActions.UPLOAD_FAILURE,
uploadActions.MARK_UPLOAD_AS_COMPLETE
)
.filter(a => { // <---- this filter only applies to uploadActions.MARK_UPLOAD_AS_COMPLETE
const completedFileHandle = a.payload;
return handle === completedFileHandle;
})
)
.mergeMap(action =>
...
);
有没有一种干净的方法可以实现这一点?
【问题讨论】:
-
什么具体不起作用?我的直觉反应是在两个单独的
action$.ofType(...)上做一个combineLatest,这样你就可以过滤那个了。 -
@bygrace 因为它将
filter应用到uploadActions.UPLOAD_FAILURE,它没有有效负载,因此返回false
标签: rxjs redux-observable