[번역] 구글 API 클라이언트 라이브러리 - 4
저는 에어데스크라는 확장 프로그램을 만들고 있습니다. 새로운 기능을 만드는데 API 문서를 읽다가 이곳저곳 영어로 읽다보니 정리가 안 되는것 같아 통째로 번역했습니다. 번역은 크게 틀리진 않았을 겁니다만 혹시라도 이상한 부분을 찾으시면 댓글로 알려주세요!
첫번째 글: [번역] 구글 API 클라이언트 라이브러리 - 1
두번째 글: [번역] 구글 API 클라이언트 라이브러리 - 2
세번째 글: [번역] 구글 API 클라이언트 라이브러리 - 3
원문 링크:
[Using Promises | API Client Library for JavaScript | Google Developers
https://developers.google.com/api-client-library/javascript/features/promises](https://developers.google.com/api-client-library/javascript/features/promises)
자바스크립트의 프로미스는 비동기 명령의 결과를 표현합니다. 프로미스는 3가지 상태 중 하나일 수 있습니다. pending, fullfilled 또는 rejected입니다. 프로미스의 fullfilled value 또는 rejection reason에 엑세스하기 위해 당신의 핸들러를 프로미스의 then 메소드를 이용해 등록해야합니다.
자바스크립트 클라이언트 라이브러리는 Promises/A+에 일치하는 인터페이스를 제공합니다.
우리는 당신이 콜백을 사용하기보단 프로미스를 쓰기를 강력히 추천합니다.
프로미스 인터페이스로 만들어진 요청은 RESTful입니다.
프로미스를 사용하면 우아한 에러 핸들링과 편한 체이닝을 할 수 있습니다.
또한 오래된 콜백 인터페이스에서 생긴 다양한 작은 버그와 불일치들을 쉽게 고칠 수 있습니다.
프로미스 사용하기
요청은 gapi.client.request, gapi.client,newBatch와 등록된 API 메소드들("thenable")을 통해 생성됩니다. 또한 gapi.client.load는 만약 콜백 어규먼트가 제공되지 않을 때 프로미스를 리턴합니다. 각각의 요청은 3개의 옵션 파라메터를 가진 **then(opt_onFulfilled, opt_onRejected, opt_context)**메소드를 가지고 있습니다.
알려드립니다: 라이브러리 안의 프로미스는 lazily resolve됩니다. 이는 then이 호출되기 전까지 실제로 네트워크 요청이 만들어지지 않는다는 의미입니다. 한 번 프로미스가 resolve되거나 값을 가지고 reject되면, 값은 바뀌지 않습니다.
알려드립니다: 우린 언제나 당신이 rejection 핸들러를 제공하는걸 강력하게 추천합니다. 당신의 코드가 다루지 못하는 Rejection은 top-level exceptions로 전파될 것입니다. Rejection reason은 애플리케이션 단계의 에러와 네트워크 에러를 포함할 수 있습니다.
Fullfilled 응답과 애플리케이션 단계 rejections는 아래의 형태를 따릅니다.
단일 요청 예제:
batch 요청들
당신이 batch에 추가할 의도를 가지고 요청을 생성할 때는 batch에 추가되기 전까지 then 메소드를 호출하지 마십시오. 만약 then 메소드가 요청이 추가되기 전에 호출되면, 요청은 batch 대신 즉시 보내집니다. 당신은 요청들의 then 메소드를 batch의 then 전 또는 후에 호출 할 수 있습니다. batch 오브젝트가 프로미스로 취급될 때 옵션 callback의 add 메소드는 효과가 없습니다.
예제:
컨텍스트 파라미터
컨텍스트 포인트의 핸들러 안의 this로 설정하므로써 컨텍스트 값을 프로미스 핸들러로 바인딩하는 것과 컨텍스트 파라미터를 전달하는 것은 같습니다.
예제:
콜백을 프로미스로 마이그레이션
fullfilled 프로미스 값의 result 파라메터는 execute의 콜백 첫번째 파라미터와 같습니다. 당신의 코드를 업데이트하여 프로미스를 사용하기 위해선 아래의 before, after 예제처럼 바꾸십시오.
다음의 코드는 콜백을 사용한 예제를 보여줍니다:
위 코드를 프로미스를 사용해 다시 쓰면 아래와 같습니다:
More from Howdy의 블로그
See all posts특별한 법칙은 아니지만 자주 생각하려는 법칙이 있다. 향기의 법칙이라고 명명한 이 법칙은 무척이나 간단하다. 어떠한 상황에서든 상대를 유혹하라는 것이다. 원하는 것이 있다면 상대방이 원하도록 유혹하는 것이다. 이는 아주 간단한 원칙인데 동시에 매우 달성하기 어려운 법칙이기도 하다. 향…
향기의 법칙
하루가 멀다하고 사고가 터지는 것이 인간사. 인간이 만든 것 중 무엇이 대단하다 말할 수 있을까. 무엇이 완전하다 말할 수 있을까. 무엇이 영원하다 말할 수 있을까. 영원한 것은 단 하나도 없고 먼지가 쌓이지 않는 것도 단 하나도 없다. 기회 역시 영원하지 않아서 영원할 것 같은 젊음…
영원하지 않다
이카루스는 태양에 가까이 가면 안된다는 것을 알았으나 높게 날았다. 깃을 붙인 밀납이 녹아 깃이 떨어져 나가고 나서야 그는 자신의 미래를 보았다. 자유로 향하는 날개를 얻었을 때 태양을 향해서도 바다를 향해서도 안됐다. 고도를 유지하며, 섬세하게 바람을 타지 않는다면 어디로든 날아갈…
자유의 날개
인간이 보편적으로 누리는 권리는 대부분 거래를 통해 획득했다. 참정권은 군복무, 참전으로 얻었고, 링컨의 노예제 해방을 위해선 산업화된 사회에서의 흑인 인권이 필요했다. 반면 노예를 사용하는 것이 경제적 이득이 되는 남부군의 입장에서는 당시 기준으로 재산권 침해에 해당한다고 보았기에…
Comments