해결된 질문
작성
·
239
0
안녕하세요 강사님 :)
reduce 함수에서 비동기 값 a를 처리하기 위해서 reduceF를 정의하시고 사용하셨는데
함수 내부에서 풀어서 작성 했을시 정상적으로 동작하지 않더라구요
어떤 문제가 있어서 정상적으로 동작하지 않는것인가요 ?
var reduce = curry((f, acc, iter) => {
if(!iter) {
iter = acc[Symbol.iterator]();
acc = iter.next().value;
} else {
iter = iter[Symbol.iterator]();
}
return go1(acc, function recur(acc) {
let cur;
while(!(cur = iter.next()).done) {
const a = cur.value;
acc = a instanceof Promise
? a.then(a => f(acc, a), e => e == nop ? acc : Promise.reject(e))
: f(acc, a)
// acc = reduceF(acc, a, f);
if (acc instanceof Promise) return acc.then(recur);
}
return acc;
});
});
reduce(add, [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)])
.then(log);