Есть ли чистый/короткий/правильный способ совместного использования axios обещание и загрузка события прогресса?Redux saga, axios и progress event
Предположим, у меня есть следующая функция загрузки:
function upload(payload, onProgress) {
const url = '/sources/upload';
const data = new FormData();
data.append('source', payload.file, payload.file.name);
const config = {
onUploadProgress: onProgress,
withCredentials: true
};
return axios.post(url, data, config);
}
Эта функция вернула обещание.
Также у меня есть сага:
function* uploadSaga(action) {
try {
const response = yield call(upload, payload, [?? anyProgressFunction ??]);
yield put({ type: UPLOADING_SUCCESS, payload: response });
} catch (err) {
yield put({ type: UPLOADING_FAIL, payload: err });
}
}
Я хочу получить о ходе событий и положить его саге. Также я хочу поймать успех (или неудачный) результат запроса axios. Является ли это возможным?
Спасибо.
Следует ли eventEmitter быть «eventChannel» вместо этого? –