-
비동기 - 콜백과 프로미스 객체의 이해JavaScript/JavaScript 2021. 8. 3. 11:06
동기
동기 방식 (Synchronous)
- 코드를 작성한 순서대로 동작하는 것
function a() { console.log('A') } function b() { console.log('B') } a() b() /* 실행 결과 */ A B
비동기 방식 (Asynchronous)
- 특정 코드의 연산이 끝날 때까지 기다리지 않고, 그동안 다른 코드를 실행- 실행 순서가 보장되지 않는다
- 비동기 처리의 방식은 setTimeOut, callback, promise 등이 있다
비동기 - 콜백과 프로미스 객체의 이해
콜백 함수 (callback)
- 특정 함수에 매개변수로 전달되는 함수 (데이터처럼 사용되는 함수)
- 실행 순서를 보장
- 콜백이 많아지면 관리하기가 불편해진다 (콜백 지옥)
function a(callback) { setTimeout(() => { console.log('A') callback() }, 1000) } function b() { console.log('B') } a(function () { b() }) /* 실행결과 */ A B
Promise 객체
- 자바스크립트 비동기 처리에 사용되는 객체
- 비동기 연산 결과를 알려주기 위해서 사용
- Callback 보다 코드가 간결해지고 가독성이 좋아진다
- async & await 키워드를 통해서 비동기의 내용 처리 가능 (실행 순서 보장)
function a() { // promise: 약속의 객체! return new Promise(function (resolve) { setTimeout(function () { console.log('A') resolve() }, 1000) }) } function b() { console.log('B') } async function test() { await a() b() } test() /* 실행결과 */ A B
참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
Promise - JavaScript | MDN
Promise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.
developer.mozilla.org
'JavaScript > JavaScript' 카테고리의 다른 글
비동기 - API 비동기 처리 연습 (0) 2021.08.05 비동기 - 예외 처리 (0) 2021.08.03 JS 자세히 알아보기 (영화 포스터 출력하기) (0) 2021.06.09 JS 자세히 알아보기 (Storage) (0) 2021.06.09 JS 자세히 알아보기 (JSON) (0) 2021.06.08