이펙트 추상화

일반적으로, Saga 내부에서 사이드 이펙트를 일으키는 것은 항상 서술적인 이펙트를 yield 합니다. (물론 직접 Promise 를 yield 할 수도 있습니다. 하지만 첫 번째 섹션에서 봤던 것처럼 테스트를 어렵게 만들 겁니다.)

Saga 가 실제로 하는 일은, 훌륭한 제어 흐름을 구현하기 위해 모든 이펙트들을 통합하는 것 입니다. yield 들을 차례차례 넣음으로써 yield 된 이펙트들의 순서를 지키는 것과 같습니다. 물론 (if, while, for) 같은 친숙한 흐름 연산자를 사용하여 더 세련된 제어 흐름을 구현할 수도 있습니다.

takeEvery 처럼 고레벨 API들 이 결합한 callput 같은 이펙트들을 사용하는 것을 알아보았습니다. redux-thunk 와 결과는 비슷하지만 쉽게 테스트 할 수 있다는 장점이 있습니다.

그러나 redux-sagaredux-thunk 의 다른 장점들도 제공합니다. 고급 개념 섹션에선, 테스트에 대한 장점을 동일하게 제공하면서 더 복잡한 제어 흐름을 가능하게 하는 강력한 이펙트들에 대해 알아보겠습니다.

results matching ""

    No results matching ""