эффект взять на себя функцию или
льку в обратном вызове не разрешено указывать «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;
}