Я пытаюсь использовать Redux Saga, чтобы дождаться завершения времени.
while(yield select(getSceneInstanceTimeComplete)){
const ready = yield select(getSceneInstanceTimeComplete)
if(ready)
yield put(new SceneInstanceComplete(sceneInstance.id, sessionId))
yield delay(100)
}
По сути, этот селектор проверяет, было ли выполнено условие каждые x, чтобы запустить действие. Селектор проверяет, достиг ли таймер определенного времени с некоторыми задержками.
Этот селектор вызывается только один раз.
Как лучше всего go об этом?
Селектор
export const getSceneInstanceTimeComplete = createSelector([
sceneInstance, sceneTimer
], (sceneInstance: ISceneInstance, timer: ISceneTimerState) => {
return new Date().getTime() - timer.start - timer.delay > sceneInstance.completion.value * 1000
})