더북(TheBook)

18.3.2.1 제너레이터 함수 이해하기

redux-saga에서는 ES6의 제너레이터(generator) 함수라는 문법을 사용합니다. 보통 일반적인 상황에서는 많이 사용되지 않기 때문에 초반에 진입 장벽이 있을 수 있습니다.

우선 제너레이터 함수 문법에 대해 알아봅시다. 이 문법의 핵심 기능은 함수를 작성할 때 함수를 특정 구간에 멈춰 놓을 수도 있고, 원할 때 다시 돌아가게 할 수도 있다는 것입니다.

다음과 같은 함수가 있다고 가정해 봅시다.

function weirdFunction() {
return 1;
return 2;
return 3;
return 4;
return 5;
}

하나의 함수에서 값을 여러 개 반환하는 것은 불가능하므로 이 코드는 제대로 작동하지 않습니다. 정확히는 호출할 때마다 맨 위에 있는 값인 1이 반환됩니다.

하지만 제너레이터 함수를 사용하면 함수에서 값을 순차적으로 반환할 수 있습니다. 심지어 함수의 흐름을 도중에 멈춰 놓았다가 다시 이어서 진행시킬 수도 있죠.

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