2016-07-18 2 views
0

JavaScript의 약속을 이해하려고합니다.동기식 JS 함수의 약속 반환

예제 시나리오에서는 가능한 경우 로컬 "캐시"에서 데이터를 반환하거나 HTTP 호출을 통해 서버에서 데이터를 검색하는 메서드를 작성하려고합니다. 내 JS 함수의 사용자가 통일 된 API를 갖도록 비동기 호출이없는 경우에도 항상 약속을 반환하려고합니다. Javascript에서 어떻게 그걸 얻을 수 있습니까? 나는 5에 속해있다.

+1

어떤 Promise 라이브러리를 사용하고 있는지 (또는 네이티브 JS를 사용 중인지) 알 수는 없지만 일반적으로 ['Promise.resolve()'] (https : 즉시 해결 된 약속을 만들 수있는 //developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve. 당신이 찾고있는 것과 같은 소리. 또한 API를 일관성있게 유지하기위한 하이 파이브 - 여러 리턴 유형을 가진 함수는 항상 작동하는 데 어려움이 있습니다. –

+0

캐시와 함께 약속을 사용하는 방법은 다음과 같습니다. http://stackoverflow.com/questions/31421482/how-to-reuse-promises/31421769#31421769 – jfriend00

답변

1

당신은 그들에게 Promise.resolve 함수를 원한다.이 값은 즉시 해결되어야한다. es5를 사용 중이므로 Bluebird와 같은 약속 라이브러리를 사용하거나 Babel과 같은 변환기를 사용하여 ES6을 ES5로 컴파일 할 수 있습니다.

+0

Bluebird는 훌륭하지만 더 가벼운 라이브러리가 있습니다. 엄격한 ES6 Promise - https://github.com/stefanpenner/es6-promise –

+0

예. 약속 라이브러리를 실제로 보증하지는 않았습니다. 인기있는 라이브러리 중 하나이기 때문에 언급하고있었습니다. 개인적으로 바벨 루트를 사용하거나 node.js를 사용한다면 v.6.2를 사용할 것입니다. v.6.2는 이미 준수 할 것으로 예상됩니다. – Kevin

0

첫 번째 약속은 ES-6/ecma2015 기능이므로 바벨 https://babeljs.io/과 같은 것을 사용하거나이 폴리 폴리 https://github.com/getify/native-promise-only을 사용할 수 있습니다.

var promise = getValue(); 
promise.then('do your stuff here '); 


function getValue(){ 
    return new Promise(function executor(resolve,error){ 
     getData(resolve); // call your function that gets the data. 
    }); 
}