具有redux传奇的进程队列
我正在尝试使用redux saga生成器实现用于管理通知的队列处理程序 基本上,我需要在通知进入队列时按顺序显示它们 为此,我在redux存储中有一个具有redux传奇的进程队列,redux,generator,redux-saga,Redux,Generator,Redux Saga,我正在尝试使用redux saga生成器实现用于管理通知的队列处理程序 基本上,我需要在通知进入队列时按顺序显示它们 为此,我在redux存储中有一个队列数组,一个要添加到队列的操作qque_通知操作和要删除队列通知的操作SHOW_通知 我当前的saga实现非常简单: export function* watchQueue() { while (true) { const state = yield select() const queue = state
队列
数组,一个要添加到队列的操作qque_通知
操作和要删除队列通知的操作SHOW_通知
我当前的saga实现非常简单:
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);
}
}
}
当前实现的问题是,当队列为空时,
qque_通知
被调度,生成器可以等待延迟完成。但是,我想在第一个通知进入队列时立即显示它。有什么想法吗?我对显示通知(将它们排队)也有同样的想法,但是saga在通道方面提供了已经实现的解决方案。 我有: 我相信这是解决你问题的好办法。
showNotification是另一个功能,它实际上显示通知并在取下它之前等待一段时间。我对显示通知(将它们排队)有相同的想法,但是saga提供了已经实现的通道解决方案。 我有: 我相信这是解决你问题的好办法。 showNotification是另一个函数,它实际显示通知并在取下它之前等待一段时间
export function * notificationSaga () {
const requestChan = yield actionChannel(Notification.request)
while (true) {
const { payload } = yield take(requestChan)
yield call(showNotification, payload)
}
}