강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

J C님의 프로필 이미지
J C

작성한 질문수

함수형 프로그래밍과 JavaScript ES6+

지연 평가 + Promise - L.map, map, take

왜 recur함수를 즉시 실행시켜야 하나요?

작성

·

294

0

recur 함수 안에서 재귀를 이미 부르고 있는데 

recur 맨 뒤 () 가 필요한 정확한 이유가 무엇일까요? 

const take = curry((l, iter) => {
  let res = [];
  iter = iter[Symbol.iterator]();
  return function recur () {
    let cur;
    while (!(cur = iter.next()).done) {
      const a = cur.value;
      if (a instanceof Promise) {
        return a
        .then(a => (res.push(a), res).length == l ? res : recur())
        .catch(e => e == nop ? recur() : Promise.reject(e));
      }
      res.push(a);
      if (res.length == l) return res;
    }
    return res;
  }();
});

답변 1

0

MDU 유인동님의 프로필 이미지
MDU 유인동
지식공유자

최초 실행을 해야하기 때문입니다. :)

J C님의 프로필 이미지
J C

작성한 질문수

질문하기