JavaScript

[JavaScript #6] 프라미스 (Promise)

zamezzz 2018. 5. 27. 21:59

 프라미스 (Promise)


오늘 정리할 개념은 프라미스입니다.


프라미스는 비동기 처리를 위한 방법 중 하나입니다. 


프라미스가 성공한 경우에는 정상적으로 명령이 실행되며, 실패할 경우는 에러가 발생해요


간단한 예시와 함께 정리해보겠습니다.


const get = () => new Promise((resolve, reject) => {

    var req = new XMLHttpRequest()

    req.open('GET', url)


    req.onload = () =>

      (req.status == 200) ? 

        resolve(req.response) :

        reject(Error(req.statusText))


    req.onerror = (error) => reject(error)


    req.send()

})


위와 같이 특정 url에서 get메소드로 값을 가져오는 프라미스를 생성했습니다.


이제 get을 호출하면 해당 url에서 비동기로 값을 가져오려고 시도합니다.


req.status가 200(정상) 이라면 응답값을 가져오고, 아니라면 에러가 발생하겠죠.


이제 위 프라미스 이후에 처리할 내용을 기술하기 위해 then()을 사용하겠습니다.


then은 위 프라미스 뒤에 바로 발생하는 연쇄함수입니다.


get().then(

  data => console.log(data),

  error => console.log(new Error("ERROR!!"))

)




비동기 처리는 자바스크립트는 물론 대부분 언어에서 중요하게 사용되는 기술입니다.


콜백지옥에 빠지는 것을 방지해주기도 하고, 코드를 쉽고 간단하게 바꿔줍니다.


감사합니다.



반응형