我有一个函数可以在某些时间间隔执行一些数据。类似于轮询功能的东西:
function poll(handler) {
setInterval(handler, 1000); // Mocking network communication
}
所以我想在这样的redux-observable
史诗中使用这个函数(后面是伪代码):
action$
.filter(...)
.map((action) => poll)
.map(results from poll)
如何订阅轮询功能并使用 rxjs?
编辑:
我尝试过但失败了
function start() {
return Rx.Observable.create((observer) => poll(observer.next));
}
function startProcess(action$) {
return action$
.filter((action) => action.type === 'START_PROCESS')
.map((action) => start())
.swipWhile((result) => result !== 'proceed') // I only want to dispatch the next action after we get a `proceed` result from the polling function
.map(() => ({ type: 'CAN_START_PROCESS' })
}
我可以将poll
函数包装成一个承诺,然后使用,Rx.Observable.fromPromise
但我想以反应的方式来做。