TIL #23

김태훈·2023년 3월 7일
0

TIL

목록 보기
23/35

동기(Synchronous)적 방식

현재 실행중인 코드가 끝나야 다음 코드를 실행하는 방식, 일반적인 프로그래밍 세계에서는 코드는 모두 동기적으로 실행된다. 즉, 앞선 코드가 끝나야만 그 다음 코드가 수행이 된다.

비동기(Asynchronous)적 방식

실행중인 코드의 완료 여부와 무관하게 즉시 다음 코드로 넘어가는 방식

  • setTimeout, addEventListner 등
  • 별도의 요청, 실행 대기, 보류 등과 같은 코드는 모두 비동기적 코드
  • 대표적으로 서버 통신과 관련된 로직들 포함

콜백지옥

  • 콜백 함수를 익명 함수로 전달하는 과정이 반복되어 코드의 들여쓰기 수준이 헬 수준인 경우
  • 주로 이벤트 처리 및 서버 통신과 같은 비동기적 작업을 수행할 때 발생한다.
  • 가독성 하락, 수정이 어렵다.
  • 이를 극복하기 위해 then ~ catch, async / await 등장하였다.

Promise

  • Promise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타낸다.
  • Promise 객체에 담기는 주요한 상태정보
    1. 대기(pending): localhost에서 서버에 요청을 한 직후. 아직 성공(resolve)또는 실패(rejected)되지 않은 상태이다.
    2. 이행(fulfilled): 서버가 정상적으로 데이터를 localhost한테 전달한 상태이다.
    3. 거부(rejected): 서버가 localhost에게 데이터를 전달하지 못한 경우.
profile
개발자(진)

0개의 댓글