Redux-saga

아토시스·2023년 4월 19일
0

Redux

목록 보기
1/4

Redux-saga의 주요함수

delay , call , put , all , takeEvery, takeLatest

delay

  • 설정된 시간 이후에 resolve하는 Promise 객체를 리턴한다.
delay(1000)

-> 1초 기다리기

put

  • 특정 액션을 dispatch 하도록 한다.
put({type:"INCREMENT"})

-> INCREMENT action을 dispatch한다.

takeEvery

  • 들어오는 모든 액션에 대해 특정 작업을 처리해 준다.
takeEvery(INCREASE_ASYNC, increaseSaga)

-> 들어오는 모든 INCREASE_ASYNC 액션에 대해 increaseSaga 함수 실행

takeLatest

  • 기존에 진행 중이던 작업이 있다면 취소 처리하고 가장 마지막으로 실행된 작업만 수행한다.
takeLatest(DECREASE_ASYNC, decreaseSaga)

-> 들어오는 모든 DECREASE_ASYNC 액션에 대해서 기존에 진행 중이던 작업이 있다면 취소 처리하고 가장 마지막으로 실행된 작어베 대해서만 decreaseSaga 함수 실행

call

  • 함수의 첫 번째 파마리터는 함수, 나머지 파라미터는 해당 함수에 넣을 인수이다.
call(delay, 1000)

-> delay(1000)함수를 call함수를 사용해서 이렇게 쓸 수도 있다.
callput의 다른 점은 put은 스토어에 인자로 들어온 actiondispatch하고 call인 경우에는 주어진 함수를 실행하게 되는 것이다.

all

  • all 함수를 사용해서 제너레이터 함수를 배열의 형태로 인자로 넣어주면, 제너레이터 함수들이 병행적으로 동시에 실행되고, 전부 resolve 될 때까지 기다린다. Promise.all 과 비슷하다고 보면된다.
yield all([testSaga1(), testSaga2()])

-> testSaga1()과 testSaga2()가 동시에 실행되고, 모두 resolve 될 때까지 기다린다.

profile
오늘보다 더 나은 내일이 되길 바라며

0개의 댓글