我是 RxJS 新手。在我的应用程序中,我需要独立取消延迟操作。Here's http://jsbin.com/gayoti/edit?js,output一个工作示例(延迟为 3 秒)。但是当我选择删除多个项目并取消其中一项时,然后一次全部取消。
史诗代码:
const itemsEpic = action$ =>
action$.ofType('WILL_DELETE')
.flatMap(action =>
Observable.of({type: 'DELETE', id: action.id})
.delay(3000)
.takeUntil(action$.ofType('UNDO_DELETE'))
)
我想我需要通过id
to takeUntil
运算符,但我不知道该怎么做。
如果我理解的话takeUntil
操作符正确,它会停止从Observable
一旦发生争执,就有人呼吁Observable
发出它的第一个项目。考虑到这一点,你可以这样做:
const itemsEpic = action$ => action$.ofType('WILL_DELETE')
.flatMap(action => Observable.of({ type: 'DELETE', id: action.id })
.delay(3000)
.takeUntil(action$.ofType('UNDO_DELETE').filter(({id}) => id === action.id))
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)