강의

멘토링

커뮤니티

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

트릴님의 프로필 이미지
트릴

작성한 질문수

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

go, pipe, reduce에서 비동기 제어

return acc.then(recur) 이부분에 대해 이해가 잘안되네요

작성

·

269

0

const reduceFunc = (f, acc, iter) => {
    if (!iter) {
        iter = acc[Symbol.iterator]();
        acc = iter.next().value;
    }
    return go1(acc, function recur(acc) {
        for (const a of iter) {
            acc = f(acc, a);
            if (acc instanceof Promise) {
                return acc.then(recur);
            }
        }
        return acc;
    });
};
 
acc.then(recur)를 하면 재귀한 값(프로미스)가 리턴이 되면서 실행 컨택스트가 종료되고 go1함수가 바로 리턴이 되는걸로 보이는데, 실행해보면 또 그렇지 않네요,,, 리턴을 해도 내부에 실행 로직이 돌고있나요?
 

답변 1

0

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

재귀와 promise의 성공이 반복되면서 모든 일을 수행합니다 :)

트릴님의 프로필 이미지
트릴

작성한 질문수

질문하기