스파르타코딩 TIL 비동기처리와 콜백함수

developer.do·2023년 1월 7일
0

Promise는 자바스크립트 비동기 처리에 사용되는 객체 { 이름:'하이', 내용:'하하'} 이다.

비동기 처리는 무엇일까?

-> 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고, 다음 코드를 먼저 실행하는 js의 특성을 의미한다.
즉 a -> b -> c 순서대로 작동하는 코드가 있다고 가정을 해보자
그러면 여기서 b를 먼저 실행하고 -> a -> c 순대로 작동을 한다고 보면 된다.

비동기 사례를 살펴보자

console.log("hello--1");
setTimeout(function () {
  console.log("hello --2");
}, 3000);
console.log("hello---3");

결과값은 hello 1, 3 ,2 순이다.

즉 setTimeout은 비동기 방식으로 실행되기 때문에 3초를 기다렸다가 hello -- 2가 뜨는게 아니라, hello --3을 찍고 hello --2로 진행되는 것이다.

콜백함수 동작 방식

가령 맛집을 간다고 가정 했을때, 항상 줄이 길기 때문에 예약을 해놓고 다른 곳을 이리저리 돌아다니죠?
근데 식당에서 자리가 생겼다고 전화강 왔어요.

바로 이 때 가 콜백 함수가 호출되는 시점 입니다.

다시예를 들면, 자리가 준비된 시점, 즉 데이터가 준비된 시점에 원하는 동작을 수행 할 수 있습니다.(가게에 와서 자리에 앉는다 = 특정값을 출력한다.)

콜백지옥?

그럼 콜백지옥을 해결하려면?

-> promise나 async를 이용해야한다.

0개의 댓글