dataloader

gaon·2022년 4월 8일
0

graphql에서 resolvefield를 사용하면 N+1 문제가 생긴다.
이럴 때 dataloader를 이용해 쿼리를 하나로 묶어줄 수 있다.

var enqueuePostPromiseJob =
  typeof process === 'object' && typeof process.nextTick === 'function' ?
    function (fn) {
      if (!resolvedPromise) {
        resolvedPromise = Promise.resolve();
      }
      resolvedPromise.then(() => {
        process.nextTick(fn);
      });
    } :
    typeof setImmediate === 'function' ? function (fn) {
      setImmediate(fn);
    } : function (fn) {
      setTimeout(fn);
    };

dataloader는 작업을 모아놨다가 process.nextTick이나 setImmediate에서 실행한다.

0개의 댓글