• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

유명함수에 대해 질문드립니다.

22.06.24 09:15 작성 조회수 172

0

go(
  1,
  (a) => a + 10,
  (a) => Promise.resolve(a + 100),
  (a) => a + 1000,
  log
);

 

위의 코드를 실행했을 때,

 

 return (function recur(acc) {
    for (const a of iter) {
      acc = f(acc, a);
      if (acc instanceof Promise) return acc.then(recur);
    }

    return acc;
  })(acc);

 

이렇게 작성하면 (a) => a+1000까지 동작하는데

 

return (function recur(acc) {
    for (const a of iter) {
      if (acc instanceof Promise) return acc.then(recur);
      acc = f(acc, a);
    }

    return acc;
  })(acc);

 

위와 같이 바꾸면 (a) => a+1000이 빠집니다.

어차피 Promise가 아닌 함수들은 하나의 콜스택에서 동작하니 두 문의 위치를 바꿔도 상관 없지 않나요?

답변 1

답변을 작성해보세요.

0

a 를 콘솔에 찍어보세요 :)