비동기 지식없이 노드를 시작하고 어떻게 콜백의 일부로 데이터를 배열로 푸시 할 수 있는지 궁금합니다. 출력 배열은 선언되었지만 요청 콜백 내에서 참조 될 때 정의되지 않습니다. 해당 변수를 콜백 함수 범위에 전달하는 간단한 방법이 있습니까?nodejs가 요청을 가지고 루프 for for 루프를 푸시
이상적으로는 호출자에게 각 요청의 결과 배열을 보내고 싶습니다.
const request = require('request');
module.exports = {
apiRatingCall: function (input, callback) {
var output = []
for (var i = 0; i < input.length; i++) {
var options = {
url: 'someAPIURL' + '?longitude=' + input[i].longitude + '&latitude=' + input[i].latitude + '&name=' + input[i].name,
headers: {
'x-api-version': 2
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body)
output.push(info) // this is not working as ouput is undefined at this point
}
})
}
callback(output)
}
}
감사
네트워크 연결이 충분히 빠르지 않고 모든 응답이 500mils만큼 돌아 오지 않으면 어떻게합니까? –