如何解决React Redux:如何同时运行多个事件通道?
在我的React Native应用程序中,我使用以下传奇来调用initializeCountDown()
,该实例运行countdown()
的实例。这会使initializeCountdown()
每秒console.log("true")
一次。
function countdown(secs) {
return eventChannel(emitter => {
const iv = setInterval(() => {
secs -= 1
if (secs > -1) {
emitter(secs)
} else {
// this causes the channel to close
emitter(END)
}
},1000);
return () => {
clearInterval(iv)
}
}
)
}
function* initializeCountdown(action) {
let chan = yield call(countdown,action.value)
try {
while (true) {
yield take(chan)
console.log("true")
}
} finally {
console.log("false")
}
}
export default function* sagas() {
yield takeLatest(Actions.INITIALIZE_COUNTDOWN,initializeCountdown);
}
问题是,如果我正在运行countdown()
的实例,然后再次调用initializeCountdown()
,它将转到finally
的{{1}}块,并且然后再次启动。我想保持第一个实例运行,并在其上运行第二个实例。
有人知道我该怎么做吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。