18.3.1.1 Thunk란?
Thunk는 특정 작업을 나중에 할 수 있도록 미루기 위해 함수 형태로 감싼 것을 의미합니다. 예를 들어 주어진 파라미터에 1을 더하는 함수를 만들고 싶다면 다음과 같이 작성할 것입니다.
const addOne = x => x + 1; addOne(1); // 2
이 코드를 실행하면 addOne을 호출했을 때 바로 1 + 1이 연산됩니다. 그런데 이 연산 작업을 나중에 하도록 미루고 싶다면 어떻게 해야 할까요?
const addOne = x => x + 1; function addOneThunk (x){ const thunk = () => addOne(x); return thunk; } const fn = addOneThunk(1); setTimeout(() => { const value = fn(); // fn이 실행되는 시점에 연산 console.log(value); }, 1000);
이렇게 하면 특정 작업을 나중에 하도록 미룰 수 있습니다.