问题描述
在我的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 (将#修改为@)