일부 데이터를 Mssql 서버에서 가져 오려고합니다. 루프가있는 함수가 있습니다. 이 함수는 일부 데이터를 콜백에 반환했습니다. kriskowal의 "q"데이터를 resultset 변수에 넣을 수 있습니까?루프 내에서 "q"사용
기능 pet.getNameByID 및 adress.getNameByID은에 콜백 데이터를 반환!
도움 주셔서 감사합니다. 일부 지점에서
인사말 닐스
exports.get = function(callback) {
edge.func("sql", {
source: 'SELECT * FROM people'
})(null, function(error, result) {
if (error) {
throw (error)
}
if (result) {
var resultset = []
for (var i in result) {
var row = result[i];
q.all([
// get pet name
q.fcall(function() {
var deferred = q.defer();
pet.getNameByID({
id: 32155
}, function(data) {
deferred.resolve(data);
});
return deferred.promise;
}),
// get adress
q.fcall(function() {
var deferred = q.defer();
adress.getNameByID({
id: 23
}, function(data) {
deferred.resolve(data);
});
return deferred.promise;
}),
]).spread(function(resultPet, resultAdress) {
// Data!!!!
return {
petData: resultPet,
adressData: resultAdress
};
});
resultset.push(/* How can i push the data return from spread() into the resultset array? */)
}
callback(resultset);
}
});
});
다른'Q.all'을 사용하지 않는 이유는 무엇입니까? – Bergi
"for (var ..."다음에 두 번째 행의 q.all을 사용하거나 더 좋은 해결책이 있습니까? – poldixd