더북(TheBook)

다음 예시 코드를 크롬 개발자 도구에 한번 입력해 보세요.

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에서 제공하는 여러 유용한 유틸 함수를 사용하여 액션을 쉽게 처리할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.