본문 바로가기
프로그래밍 언어/JavaScript

promise / async await

by zieunee 2021. 6. 29.
반응형

promise

자바스크립트 비동기 처리에 사용되는 객체

보통 서버에서 받아온 데이터를 화면에 표시할 때 사용

function getData(callback){
    return new Promise(function(resolve,reject)){
   axios.post('~~', param)
       .catch(function (err) {

        }).then(function (rs) {
            resolve(response);
        });
    }
}

getData().then(function(data){
    console.log(data);
});

프로미스 상태(states)

  • Pending(대기) : 비동기 로직이 완료 x
    • new Promise(); 메서드 호출 할 때
  • Fulfilled(이행) : 비동기 처리 완료되어 프로미스가 결과값 반환
  • return new Promise(function(resolve,reject)){ resolve(); // 실행하면 이행 상태가 된다. });
  • Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태
  • return new Promise(function(resolve,reject)){ ...... reject(new Error("Request is failed")); });

Promise chaining

then()으로 여러개 프로미스 사용할 수 있음

..()
.then(function(data){

})
.then(function(){

});
....

async

promise 의 .then .catch 와다르게 네트워크 비동기 요청에서만 처리

일반 try catch 자바스크립트 코드 까지 예외처리 가능 (async 안에 사용 )

import { handleException } from './utils/handler.js' //.... try{ // ... }catch(error) { handleException(error); }

`/utils/handler.js`

function handleExceptions(status){ //.. }

로 공통으로 처리 가능

async

promise 의 .then .catch 와다르게 네트워크 비동기 요청에서만 처리

일반 try catch 자바스크립트 코드 까지 예외처리 가능 (async 안에 사용 )

import { handleException } from './utils/handler.js'
//....
try{
// ... 
}catch(error) {
    handleException(error);

}

/utils/handler.js

function handleExceptions(status){
 //..
}

로 공통으로 처리 가능

반응형

'프로그래밍 언어 > JavaScript' 카테고리의 다른 글

map, filter, reduce  (0) 2021.07.05
ES6 이터러블 /이터레이터, 리스트 순회  (0) 2021.07.03
javascript 콜백 promise  (0) 2020.04.10
객체  (0) 2019.06.28
DOM 객체  (0) 2019.06.28