좋은 타임 라인의 원칙
- 타임라인은 적을수록 이해하기 쉬움 (가능한 실행 순서의 개수 공식)
- 타임라인은 짧을수록 이해하기 쉬움
- 공유하는 자원이 적을수록 이해하기 쉬움
- 자원을 공유한다면 서로 조율해야 함
- 시간을 일급을 다룸
동시성 기본형
- 자원을 안전하게 공유할 수 있는 재사용 가능한 코드를 말함
function Cut(num, callback) {
var num_finished = 0;
return function() {
num_finished += 1;
if (num_finished === num)
callback();
};
}
// 예제
var done = Cut(3, function() {
console.log("3 timelines are finished");
});
done();
done();
done();
console => "3 timelines are finished"
코드에 Cut() 적용하기
/// Before
function calc_cart_total(cart, callback) {
var total = 0;
cost_ajax(cart, function(cost) {
total += cost;
});
shipping_ajax(cart, function(shipping) {
total += shipping;
callback(total);
});
}
/// With Cut()
function calc_cart_total(cart, callback) {
var total = 0;
var done = Cut(2, function() { // done()이 두번 호출될때까지
callback(total);
});
cost_ajax(cart, function(cost) {
total += cost;
done();
});
shipping_ajax(cart, function(shipping) {
total += shipping;
done();
});
}