我試圖從Mssql服務器中獲取一些數據。我有一個循環功能。該函數將一些數據返回給回調。我怎麼能把kriskowal的「q」的數據放到結果集變量中?在循環中使用「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 2014-11-20 18:23:30
我使用q.all在「for(var ...」之後的第二行,或者是否存在一個解決方案? – poldixd 2014-11-20 20:50:44