다음 예시 코드를 크롬 개발자 도구에 한번 입력해 보세요.
function* watchGenerator() { console.log('모니터링 중...'); let prevAction = null; while(true) { const action = yield; console.log('이전 액션: ', prevAction); prevAction = action; if (action.type = = = 'HELLO') { console.log('안녕하세요!'); } } } const watch = watchGenerator(); watch.next(); // 모니터링 중.. // {value: undefined, done: false} watch.next({ type: 'TEST' }); // 이전 액션: null // {value: undefined, done: false} watch.next({ type: 'HELLO' }); // 이전 액션: {type: "TEST"} // 안녕하세요! // {value: undefined, done: false}
redux-saga는 위 코드와 비슷한 원리로 작동합니다. 제너레이터 함수의 작동 방식만 기본적으로 파악하고 있으면, redux-saga에서 제공하는 여러 유용한 유틸 함수를 사용하여 액션을 쉽게 처리할 수 있습니다.