여러 요청 (Express 사용)을 보내고 하나의 기능으로 모든 응답을 처리하는 방법을 찾으려고합니다.
내 코드는 다음과 같습니다.
// In router.js
app.get('/api/FIRST_PATH', CALLBACK_FUNCTION_A );
// In CALLBACK_FUNCTION_A file :
module.exports = function (req, response) {
CALLBACK_FUNCTION_TO_SERVICE_A();
CALLBACK_FUNCTION_TO_SERVICE_B();
CALLBACK_FUNCTION_TO_SERVICE_C();
}
내 문제는 CALLBACK_FUNCTION_TO_SERVICE_A, CALLBACK_FUNCTION_TO_SERVICE_B 및 CALLBACK_FUNCTION_TO_SERVICE_C 요청을 보낸 다음 다른 함수에서 모든 결과를 검색하여 처리하는 것입니다.
어떤 도움이라도 대단히 감사하겠습니다.
새로운 js 표준에 대해 자세히 알아보고 Promise
.
// In CALLBACK_FUNCTION_A file :
module.exports = function (req, response) {
var promises = [CALLBACK_FUNCTION_TO_SERVICE_A(),
CALLBACK_FUNCTION_TO_SERVICE_B(),
CALLBACK_FUNCTION_TO_SERVICE_C()];
Promise.all(promises).then( function(results) {
//results is an array
//results[0] contains the result of A, and so on
});
}
물론 객체 CALLBACK_FUNCTION_TO_SERVICE_A()
를 반환해야 Promise
합니다. 다음과 같은 함수를 형성합니다.
function asyncFunction(callback) {
//...
callback(result);
}
다음과 같이 Promise를 생성 할 수 있습니다.
var p = new Promise(asyncFunction);
기능 실행을 시작하고 Promise 인터페이스를 지원합니다.
예를 들어 다음을 사용 request-promise
하거나 다음과 같이 할 수 있습니다.
function CALLBACK_FUNCTION_TO_SERVICE_A() {
var worker = function(callback) {
app.get('/api/FIRST_PATH', callback);
};
return new Promise(worker);
}
Promise
오류를 쉽게 처리하는 방법에 대해 자세히 읽을 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다