Каналы событий Redux Saga - PullRequest
       5

Каналы событий Redux Saga

0 голосов
/ 21 января 2020

Я обхожу голову вокруг Redux Saga, и мне нужно запустить действие после события

    yield dash.isReady() 
        ? put(new GoToScene(sceneInstance.sceneId)) 
        : dash.on(MediaPlayer.events.STREAM_INITIALIZED, e => {
            console.log('stream ready')
            put(new GoToScene(sceneInstance.sceneId))
        })  

, т.е. если оно готово немедленно выстрелить, если не дождаться события перед выстрелом.

Я видел EventChannels, но не совсем понимаю, как бы я это реализовал.

Я пробовал что-то вроде

    const mediaReady = () => yield put(new GoToScene(sceneId)) 

    yield dash.isReady() 
        ? mediaReady
        : eventChannel(emit => {
            dash.on(MediaPlayer.events.STREAM_INITIALIZED, mediaReady)
           return dash.off(MediaPlayer.events.STREAM_INITIALIZED, mediaReady) 
        })  

Есть какие-нибудь подсказки?

...