2016-10-25 2 views
1

redux-saga 생성기로 알림을 관리하기위한 큐 핸들러를 구현하려고합니다.redux-saga로 프로세스 큐

기본적으로 대기열에 들어갈 때 알림을 연속해서 표시해야합니다.

이렇게하려면 redux 저장소에 queue 배열이 있습니다. 작업 대기열에 추가하려면 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가 전달 발전기 기다리고있을 수 있다는 것입니다 :

나의 현재 사가 구현은 간단한 것입니다.
그러나 첫 번째 알림이 대기열에 들어가 자마자 표시하려고합니다. 어떤 아이디어?

답변

2

나는 (채널을 대기시키는) 알림을 표시하는 것과 동일한 아이디어를 가지고 있지만, saga는 채널 측면에서 이미 구현 된 솔루션을 제공합니다. 내가 가진 : 나는 당신의 문제에 대한 우아한 해결책이라고 생각

export function * notificationSaga() {             
    const requestChan = yield actionChannel(Notification.request)       
    while (true) {                   
    const { payload } = yield take(requestChan)           
    yield call(showNotification, payload)             
    }                      
} 

. showNotification은 실제로 알림을 표시하고 조금 내리기 전에 대기합니다.