Javascript 비동기

J·2023년 1월 1일
0

웹 공부

목록 보기
1/9

항상 쓰던 비동기지만
정확한 의미는 알지 못하고 대충 느낌으로만 쓰곤 했다.
이번에야말로 제대로 이해해보자!

1. Promise

참고 : https://ko.javascript.info/promise-basics

쉽게 말하면 제작 코드와 소비 코드를 연결해주는 객체다.

제작 코드는 약속한 결과를 만들어 내고
소비 코드는 그 결과를 사용하는데
이 둘을 연결해주는게 Promise 객체이다.

참고 사이트에 예시로 가수와 음원을 기다리는 팬 을 예시로 들었는데
진짜 찰떡인거 같다. 보고 딱 이해했다.

Promise 기본

const promise = new Promise(function(resolve, reject){
	//executor -> 실행자
})
  • 제작 코드

    • executor
  • 소비 코드

    • resolve (callback) : 성공적으로 끝난 경우 value 와 함께 호출
    • reject (callback) : 에러 발생시 error 객체와 함께 호출
  • Promise state

    • pending (보류)
    • resolve 호출시 fulfilled
    • reject 호출시 rejected
  • Promise result

    • 처음엔 undefined
    • resolve 호출시 value
    • reject 호출시 error

Promise의 소비함수

  • then

    promise.then(resultCallback, rejectCallback);
  • catch
    error가 난 경우만 다루고 싶을때 사용

    promise.catch(callback);
  • finally
    promise의 결과에 상관없이 제일 마지막에 실행

    	promise.finally(callback);
일반적으로는 이렇게 사용한다.
  ```javascript
  promise
  .then(callback)
  .catch(callback)
  .finally(callback);		//잘 안씀

2. async, await

Promise를 좀 더 쉽게 쓰기 위한 문법이다.

async exFunc(){
	const result = await axios('...');
}

async

  • function 앞에 위치함
  • 항상 Promise 객체 return
  • return 타입이 Promise가 아니더라도 Promise로 감싸서 return
    • ex) return 값이 1이면 Promise의 result가 1이 됨

await

  • promise가 처리될 때까지 기다림
  • promise의 result 값을 바로 얻을 수 있음.

0개의 댓글