эффект взять на себя функцию или

льку в обратном вызове не разрешено указывать «yield», как я могу использовать функцию «пут» в системе обратного вызова?

Я хотел бы иметь следующий обратный вызов:

function onDownloadFileProgress(progress) {
  yield put({type: ACTIONS.S_PROGRESS, progress})
}

Это не работает и заканчивается "неожиданным токеном", потому чтоУступать не допускается в простой функции. В противном случае я не могу передать обратный вызов как "функция *", что позволило бы урожайности. ES6 здесь сломан.

Я читал, что Redx-сага предоставляет некоторые функции под названием "каналы", но, если честно, я не понял. Я несколько раз читал об этих каналах и коде примера, но во всех примерах они решали очень сложные и разные проблемы, не мой простой случай и в конце день, когда я поднялся туда.

Может кто-нибудь сказать мне решение, как бороться с этой проблемой?

Весь контекст:

function onDownloadFileProgress(progress) {
  yield put({type: ACTIONS.S_PROGRESS, progress})
}

export function * loadFile(id) {
  let url = `media/files/${id}`;

  const tempFilename = RNFS.CachesDirectoryPath + '/' + id;

  const download = RNFS.downloadFile( {
    fromUrl: url,          
    toFile: tempFilename,  
    background: false,
    progressDivider: 10,
    progress: onDownloadFileProgress,
  })

  yield download.promise;

}

Ответы на вопрос(3)

Ваш ответ на вопрос