[JS]비동기 프로그래밍

동기 처리 모델

연속물정상적으로 작업 완료

과제는 잇달아 일어나는그리고 그것은 무언가를 하고 다음은 분위기하다

서버로부터 데이터 요청을 받아 화면에 표시하는 태스크가 실행 중이면 서버가 데이터를 요청한 후 응답을 받을 때까지 태스크가 계속됩니다.

블록 (작업 중지)된다

function first() {
  console.log('first');
  second();
}

function second() {
  console.log('second');
  third();
}

function third() {
  console.log('third');
}

first();

비동기 처리 모델 / 비차단 처리 모델)

평행한임무를 수행하다

작업이 완료되지 않아도 기다리지 않고 다음 작업이 실행됩니다.

서버에 데이터를 요청하는 작업을 수행하여 서버에 데이터를 요청한 후 서버에서 데이터를 응답할 때까지 화면에 표시하는 경우 비차단 다음 작업을 즉시 완료

브라우저의 비동기 프로그래밍이 기본입니다.

의사소통이는 장기 실행 작업을 브라우저에 위임할 때 발생합니다.

– 대부분의 자바스크립트 DOM 이벤트 핸들러그리고 타이머 기능(setTimeout, setInterval) Ajax 요청은 비동기 처리 모델에서 작동합니다.

비동기 프로그래밍 방법은 종종 프로그램 성능과 응답성을 향상시키는 데 도움이 됩니다.

그러나 코드가 실제로 실행되는 순서를 혼동하여 코드를 읽기 어렵고 디버깅하기 어렵게 만든다는 비판을 받았습니다.

이 문제를 해결하기 위해 여러 비동기 프로그래밍 기술이 개발되었으며 일부는 JavaScript 언어 자체에 내장되었습니다.

function first() {
  console.log('first');
  second();
}

function second() {
  setTimeout(function() {console.log('second')}, 0);
  third();
}

function third() {
  console.log('third');
}

first();

원천

https://poiemaweb.com/js-async
https://developer.mozilla.org/en/docs/Learn/JavaScript/Asynchronous
https://helloworldjavascript.net/pages/285-async.html