Redx-Saga дождаться завершения - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь использовать 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
})
...