acc.then(acc => f(acc,a)); 와 acc.then(recur)의 차이점에 대해서
253
작성한 질문수 12
안녕하세요, 좋은 강의 잘 보고 있습니다.
[ 1 ]
for(const a of iter){
acc = acc instanceof Promise ? acc.then(acc => f(acc,a)) : f(acc,a)
}
의 동작과
___
[ 2 ]
for(const a of iter){
acc = f(acc,a);
if(acc instanceof Promise) return acc.then(recur)
}
의 동작의 차이가
[ 1 ]에서는
Promise.then과 같은 Promise와 체이닝 메서드의 반환값은 Promise이기 때문에
Promise를 만난 이후 부터 go에서 동작하는 iter내부의 함수들이
콜 스택이 아니라 태스크 큐에서 동작하기 때문에 약간의 성능 저하가 발생할 수 있지만,
[ 2 ] 에서는
acc instanceof Promise 라면,
return acc.then(acc => recur(acc)); 을 진행하게 되는데,
recur에 넣어준,
acc.then(acc => )에서 then 의 인자로 받은 acc는
Promise.then의 반환값이 아니지만, Promise의 반환 값인데, 이미 비동기 상황이 끝났기 때문에 콜스택에서 동작한다고 이해했는데 맞을까요??
답변 1
프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다
1
121
1
함수형 프로그래밍 심화 강의 자료 추천
0
98
2
함수형 자바스크립트 프로그래밍 책
0
69
1
filter가 아무것도 걸러내지 못하는 경우
0
131
1
take 함수의 성능적면에서의 이점
1
486
1
pipe함수
1
538
1
Identity 함수
0
453
1
함수형 프로그래밍이란
0
840
1
reduce 예제 코드 제안!
0
405
1
fxts를 배워보려고 합니다.
1
540
1
flatMap 관련 질문드립니다~
1
451
1
다용성이 높은 L.flatMap
0
359
1
변수에 재 할당 금지~
0
542
1
DevTools라고 옆에 결과 확인하는거 어떻게 하나요?
0
486
2
소요시간에 관해서 질문드립니다
1
467
1
join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!
0
468
2
reduce에 L.range를 사용할 때
0
529
2
[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유
3
747
2
제가 이해한 C.Reduce와 Reduce의 동작 차이 정리
2
799
3
go, pipe 함수 관련하여 질문 드립니다.
1
505
1
안녕하세요 강사님!
0
385
2
fxts에 go가 없는 이유?
0
847
1
비동기 관련 질문입니다!
0
465
1
질문 있습니다.
0
521
1





