2016-11-02 3 views
0

JavaScript로 약속의 개념이 생소했습니다. 다른 구성 요소에 API를 제공하는 앱이 있습니다.API에서 JavaScript 약속 사용

내 목표 : 비동기 작업에 대한 전통적인 콜백 기반 접근 방식 대신 Promises를 사용하고 싶습니다. 나는 아래의 예를 제시하고있다 :

requestCurrentPosition (correlationId, options) 

현재이는 coorelation의 ID를 전달 비동기 작업입니다. 작업이 완료되면, 성공 또는 실패 콜백이 호출 할 수 있습니다

requestCurrentPosition (Promise, options) 

이 올바른 방법입니다 :

failure(response, correlationId) 
success(response, correlationId) 

이 API는 이제 다음과 같이 리팩토링 할 것인가? 그렇다면 콜백 함수에 어떻게 통지됩니까? 그래서 같은 사용을 위해

var promise = requestCurrentPosition(options) 

이 있습니다 :

+1

대신 기능 _into_ 약속을 전달하는, 그것을 _return_. 그러면 발신자가 정상적으로 작동 할 수 있습니다. 그것은 jQuery가 다른 사람들과 함께하는 방식입니다. 실제로 jQuery는 콜백을 전달할 수 있고 약속을 반환하므로 둘 다 사용할 수 있습니다. 이전 버전과의 호환성을 위해 더 많은 동기 부여가 필요하다고 생각하면 새로운 API를 위해 둘 다 필요하지는 않습니다. – vlaz

+0

"약속"을 요구하면 오히려 '약속'을 반환하고 소비자가 어떻게 사용할지 결정하게 할 것이라고 생각합니다. 아이디어를 보려면 [예제] (https://davidwalsh.name/promises)를 참조하십시오. –

+0

당신의 예제에서 상관 ID 대신 함수에 약속을 전달할 이유가 명확하지 않습니다. 그 점을 분명히 해 주시겠습니까? – JLRishe

답변

1

일반적인 방법은 약속을 반환하는 것입니다

requestCurrentPosition(...) 
    .then(function(){...}) 
    .catch(function(){...}); 
+0

downvote를 설명하십시오. –

+0

여전히 상관 ID가 필요합니까? – Sai

+0

''requestCurrentPosition'' 메서드가 무엇을하는지 알지 못합니다. 그러나 이전에 매개 변수가 필요하다면 그렇습니다. 그래도 매개 변수가 필요합니다. –