Я пытаюсь реализовать обработчик очереди для управления уведомлениями с помощью генератора редукции-саги.Очередь процесса с redux-saga
В принципе, мне нужно показывать уведомления последовательно, когда они входят в очередь.
Для этого у меня есть queue
массив в Redux магазине, действие QUQUE_NOTIFICATION
действия, чтобы добавить в очередь и SHOW_NOTIFICATION
, чтобы удалить уведомления для очереди.
Моя текущая реализация саги так просто:
export function* watchQueue() {
while (true) {
const state = yield select()
const queue = state.queue
if (queue.length > 0) {
yield put({ action: 'SHOW_NOTIFICATION', queue[0])
}
yield call(delay, 5000);
}
}
}
Проблема с текущей реализацией является то, что, когда очередь пуста QUQUE_NOTIFICATION
отправляется генератор может ждать задержки, чтобы закончить.
Однако я хочу показать первое уведомление, как только оно войдет в очередь. Есть идеи?