我希望这是一个简单的问题,而我只是错过了一些简单的问题。我有一系列使用 .then() 的 promise 返回函数。我的最终函数获取我返回的数据,并将其格式化为正确的格式,然后将其传递回客户端。我遇到的问题(我认为)是服务器在格式化函数的承诺得到解决之前将 ff 变量发送到客户端。让我感到困惑的是,当我记录 ff 变量时,它会按预期记录所有数据。
关于为什么会发生这种情况,我做错了什么以及最重要的是如何解决这个问题的任何想法?
app.get("/subData", function(req, res) {
getConnection().then(function() {
return getSQL();
}).then(function(sql) {
return executeQuery(sql);
}).then(function(data) {
return formatData(data);
}).then(function(ff) {
console.log(ff);
res.status(200).send(ff);
}).catch(function(err) {
console.log("ERR:");
console.log(err);
res.status(405).send(err);
});
});
这是最终的格式数据函数:
function formatData(data) {
var finArr = Array();
return new Promise(function(resolve, reject) {
data.rows.forEach(function(row, fin) {
var tempArr = Array();
row.forEach(function(itm, pos) {
var ttl = data.metaData[pos].name;
var val = itm;
tempArr[ttl] = val;
});
finArr.push(tempArr);
if(fin + 1 == data.rows.length) {
resolve(finArr);
}
});
});
}
忽然笑
摇曳的蔷薇
相关分类