내 응용 프로그램의 코드에서 문제로 실행했습니다 나는 그것을 처리하는 가장 좋은 방법을 알고 싶습니다 : 내가 콜백에 5 개 값을 적용하는 기능을 가지고 싶습니다 그것을 사용하는 가장 좋은 방법을 알고 있습니다. 내가 함수가 5 개 값을 검색하기 위해 호출 할 때Node.js를 : 하나의 함수에서 여러 콜백
var someFunc = function(callback) {
var http = require('http');
var id;
var url = 'http://somesite.com/json';
// First request to get an array of 5 elements
http.get(url, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
var jsonResult = JSON.parse(body);
// 5 requests with a value from each of the 5 elements
for (var i=0;i<5;i++)
{
(function(idx) {
gameId = jsonResult.gameList[idx].id;
url = 'http://somesite.com' + id + '/token';
http.get(url, function(res) {
var body = '';
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
jsonRes = JSON.parse(body);
callback.apply(null, [idx, jsonRes.interestScore]);
});
}).on('error', function(e) {
console.log("Got error: ", e);
});
})(i);
}
});
}).on('error', function(e) {
console.log("Got error: ", e);
});
};
exports.someFunc = someFunc;
내가 이런 식으로 작업을 수행합니다 :
이exports.featured = function(req, res){
getSome.someFunc(function callback(result) {
var variables = {};
var variableName = result;
variables[variableName] = jsonRes.interestScore;
res.render('featured', { score0: variables[0], score1: variables[1], score2: variables[2], score3: variables[3], score4: variables[4] });
});
};
불행하게도 'res.render'는 후라고 여기
내 기능 코드 함수는 단지 1 개의 값만을 가져 왔으므로, 나는 그것을 적절하게 수행하거나 적절한 콜백을 수행하는 방법을 알고 싶다.감사합니다.
, HTTP 요청을받을 수 있도록하는 데 사용됩니다 : 예
. 전체 기능 코드를 사용하여 내 게시물을 더 명확하게 편집 할 것입니다. – user2663041
좋아, 이해하지만 루프 안에 청취자를 붙이는 건 좋은 생각이 아니야. * end * 이벤트에서 많은 함수가 호출되기 때문에 예기치 않은 결과가 발생할 수 있습니다. – Krasimir
예, 필자가 피하려고했던 것입니다. 왜 여기에서 물었습니까? – user2663041