Я использую redux-saga с eventChannel для обработки загрузки ресурсов с отслеживанием прогресса.
Мне было интересно, какой шаблон лучше всего подходит дляотменить событие загрузки, которое слишком часто.Должен ли я справиться с этим на более низком уровне с удушающим излучением
import {
eventChannel,
END
} from 'redux-saga'
import request from 'superagent';
import { throttle } from 'throttle-debounce';
function loadFile(url) {
return eventChannel(emitter => {
const emitProgress = (emitter, payload) => emitter(payload);
const emitProgressThrottled = throttle(500, emitProgress);
request.post(url)
.on('progress', event => {
const payload = {
percent: event.percent,
type: 'progress'
};
emitProgressThrottled(emitter, payload)
})
.then(res => {
const payload = {
data: res.body,
type: 'finish'
};
emitter(payload);
emitter(END);
})
})
}
или лучше справиться с этим в рамках redux-saga scope удушение входящий паттерн, испускаемый eventChannel
?
Любая помощь приветствуется.Спасибо.