함수형코딩 481-490 42일차
의도한 순서로 비즈니스 로직을 수행하기 위해서는 동시성을 만족시켜야한다.
비동기적으로 시행되는 여러개의 로직이 있을경우 다음단계로 넘어가기전에 모든 병렬처리를 기다려야한다.
function calcCartTotal {
var total =0
var done = Cut(2, ()=>callback(total))
const ajax {
logic()
done()
}
const ajax2{
logic()
done()
}
}
js에서는 promise.all이라는 동시성 기본형이 있다.
다른 언어에서 동시성 기본형이없다면 구현할줄 알아야한다
함수형코딩 491~501
지금까지는 여러요청을 모두 기다린 뒤 수행하는 Cut-done로직을 구현했다.
추가적인 동시성 기본형중 다른 형태로는 딱 한번만 호출하는 기본형도 있다.
'첫 번째 실행되는 타임라인이 done을 실행할때 콜백이 실행되는 기본형'
액션을 여러번 호출하더라도 한 번만 실행되도록한다.
JustOnce()
function JustOnce(action){
var alreadyCalled = false;
return function(a,b,c){
if (alreadyCalled){
return;
}
return action(a,b,c)
}
}