inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

중간에 Promise가 있을때, 성능저하가 일어난다는 부분이 이해가 어렵습니다.

587

모르고리즘

작성한 질문수 2

1

수업 내용 코드를 캡쳐해왔는데요.

최초에 promise가 동작하도록 아래와 같이 코드 작성을 하셨고, 아래 코드는 위 코드에서 Promise.resolve(a+100)이후에 Promise chain을 타게 되어, 연속적으로 비동기가 일어나며 성능저하가 일어난다고 하셨는데요.

Promise.resolve(a+100) 이후 acc에 할당되는 값이 acc.then(acc => f(acc,a));가 되다 보니까 결국

acc.then(acc => f(acc,a)).then(acc => f(acc,a)).then...then...;

위와 같이 계속 thenable 하게 chaining이 되고,

그 결과 promise는 microstack 이기 때문에
microstack queue <-> callstack 사이에 task 이동으로 인해 부하가 생겨 성능 저하가 발생한다.

하지만 코드 내에 호출되는 일반 함수의 경우 callstack에 바로 호출되기 때문에, 유명함수를 가진 함수로 리팩터링하신 것 같은데

위와 같이 이해한 게 맞을까요?

 

수업질문 javascript 함수형-프로그래밍

답변 1

1

MDU 유인동

네 맞습니다 :)

프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다

1

113

1

함수형 프로그래밍 심화 강의 자료 추천

0

74

2

함수형 자바스크립트 프로그래밍 책

0

55

1

filter가 아무것도 걸러내지 못하는 경우

0

115

1

take 함수의 성능적면에서의 이점

1

464

1

pipe함수

1

532

1

Identity 함수

0

451

1

함수형 프로그래밍이란

0

832

1

reduce 예제 코드 제안!

0

405

1

fxts를 배워보려고 합니다.

1

537

1

flatMap 관련 질문드립니다~

1

446

1

다용성이 높은 L.flatMap

0

359

1

변수에 재 할당 금지~

0

540

1

DevTools라고 옆에 결과 확인하는거 어떻게 하나요?

0

484

2

소요시간에 관해서 질문드립니다

1

458

1

join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!

0

465

2

reduce에 L.range를 사용할 때

0

527

2

[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유

3

739

2

제가 이해한 C.Reduce와 Reduce의 동작 차이 정리

2

788

3

go, pipe 함수 관련하여 질문 드립니다.

1

499

1

안녕하세요 강사님!

0

381

2

fxts에 go가 없는 이유?

0

843

1

비동기 관련 질문입니다!

0

463

1

질문 있습니다.

0

517

1