Redux Saga генератор функции запуска и остановки - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь использовать функцию генератора, чтобы остановить и запустить службу записи в Redux Saga.

Что-то вроде:

function* recorder(action: StartRecord | EndRecord){

    var recorder

    if(action.type === RecorderTypes.START_RECORD)
        recorder = yield start()
    else
       yield recorder.stop()    

}

Однако этот рекордер перезаписывается при каждом вызове.

Я новичок в функциях генератора, но я вроде понял, что они сохранили свои переменные ..

Я пытался объявить его глобальным вне функции, но это тоже не помогло.

РЕДАКТИРОВАТЬ Я пытался использовать контекст, но объект, кажется, не сохраняет

function* recorder(action: StartRecord | EndRecord){

    if(action.type === RecorderTypes.START_RECORD){
        const recorder = yield start()
        yield setContext({recorder})
    }

    else{
        const recorder = yield getContext('recorder')
        console.log(recorder)
        recorder.stop()
    }
}
...