동기/비동기

Siwoo Pak·2021년 7월 27일
0

Javascript

목록 보기
25/34
// 현재 시각과 시작 시각을 비교하며 ms 범위 내에서 무한 루프를 도는 블록킹 함수
function waitSync(ms) {
  let start = Date.now();
  let now = start;
  while(now-start < ms) {
   noew = Date.now(); 
  }
}

function drink(person, coffee) {
  console.log(person + '는 ' + '를 마십니다');
}

function orderCoffeeSync(coffee) {
  console.log(coffee + '가 접수되었습니다');
  waitSync(2000);
  return coffee;
}

let customers = [
  { name: 'Steve', request: '카페라떼' },
  { name: 'John', request: '아메리카노'}
];

// 동기 호출
customers.forEach( customer => {
  let coffee = orderCoffeeSync(customer.request);
  drink(customer.name, coffee);
})

  • 비동기 호출
function waitAsync(cb, ms) {
  setTimeout(cb,ms);
}
function drink(person, coffee) {
  console.log(person + '는 ' + '를 마십니다');
}
function orderCoffeeAsync(menu, callback) {
  console.log(menu + '가 접수되었습니다');
  waitAsync(function() {
    callback(menu);
  }, 4000);
}
let customers = [
  { name: 'Steve', request: '카페라떼' },
  { name: 'John', request: '아메리카노'}
];
// 비동기 호출
customers.forEach( customer => {
  orderCoffeeAsync(customer.request, coffee => {
    drink(customer.name, coffee);
  });
});
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글