Q(initialCall).then(someOtherCallThatUsesResultsFromPreviousResults)
호출은 일반적 promisified Node.js를 http.get 외부 REST API에 대한 호출을 의미한다. 경로는 이전 호출의 정보를 사용하여 구성됩니다. 동시에 이전 호출의 정보도 파이프 처리하려고합니다. 체인의 최종 결과는 두 호출의 데이터가 하나의 객체로 병합되어야합니다. 현재 정보 전달은 추가 매개 변수 인 객체를 통해 명시 적으로 수행됩니다. 명시 적으로 추가 매개 변수를 전달하지 않아도되는 방법은 무엇입니까?
function jsonRequest(pathThatIsContructedBasedOnPreviousResults, object:any) {
var deferer = Q.defer();
var options = capsuleOptions;
options.path = path;
https.get(options, function (response) {
response.on('data', function (d) {
var parsedJson = JSON.parse(d);
deferer.resolve({data: parsedJson, object: object});
})}).on('error', function(e) {deferer.reject(e);});
return deferer.promise;
}
예 :
function getUserDetailsByEmail(email) {
var userByEmailRequestPath = '/api/party?email=' + email;
return jsonRequest(userByEmailRequestPath, email);
}
UserByEmail 엔드 포인트는 응답 JSON의 일환으로 이메일을 반환하지 않습니다와 나는 아직도 반환 값의 이메일을 포함합니다.
간단한 예를 들려 줄 수 있습니까? – thefourtheye
업데이트 됨. 도움이 되나요? 그게 더 복잡한 표현이 될 수 있다고 생각합니다. – sumek