■ 프라미스 (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!!")) ) |
비동기 처리는 자바스크립트는 물론 대부분 언어에서 중요하게 사용되는 기술입니다.
콜백지옥에 빠지는 것을 방지해주기도 하고, 코드를 쉽고 간단하게 바꿔줍니다.
감사합니다.
'JavaScript' 카테고리의 다른 글
[JavaScript #8] JSON Property Name 다루기 (0) | 2018.06.16 |
---|---|
[JavaScript #7] 클래스 (Class) (0) | 2018.06.04 |
[JavaScript #5] ES6의 객체와 배열 (0) | 2018.05.20 |
[JavaScript #4] 화살표 함수 (arrow function) (0) | 2018.05.15 |
[JavaScript #3] ES6 변수 선언 (0) | 2018.05.09 |