目前我们检查商店是否有效:
function* cycleChatBadge() {
let task;
while (true) {
const state = yield select(),
isAppActive = isAppActiveSelector(state);
if (!isAppActive) {
yield call(delay, 8000)
yield put({type: "CHAT_BADGE"});
return;
}
const { input } = yield take('CHAT_BADGE');
if (task) {
yield cancel(task)
}
task = yield fork(getChatBadge)
}
}
但是,我们想知道这种方法在功率方面是如何优化的,以及每隔5秒检查一次商店是否会耗尽电池电量 . 因此我们考虑在应用程序进入后台时暂停根传奇 . 可能吗?
1 回答
使用Page Visibility API,您可以使用document.hidden检查应用程序是否在后台,并收听事件visibilitychange以响应更改 .
使用它可以暂停和恢复 Watch .
无论如何,如果不是轮询,你可以设法在值发生变化时接收事件,效率会更高 .