试图传递一个填充数组到我的res.render.不确定如何进行适当的异步回调
Trying to pass a populated array to my res.render. Not sure how to make a proper async callback
我试图写一些从数据库中获取ip列表的东西,然后从服务器检索信息,填充对象,然后将该对象传递给数组。我似乎能够使每个对象填充,我可以告诉,它被传递到数组,但当网页加载(或我做我的数组的控制台日志),它总是空的。我有理由相信,这与同步写入有关。我对异步/同步的区别和功能还不熟悉。我尝试了一些不同的方法,我认为会工作,但无论如何,我似乎得到一个空数组。
app.get('/', function (req,res) {
//1) Read out the entries from the database.
db.all('SELECT * FROM servers', function (err,rows) {
var servers = rows;
var serverList = [];
//2) parse each one with a for Each from the steamServerStatus
servers.forEach( function (server) {
var ip = server.ip;
var port = server.port;
//3) Populate an array with each object
steamServerStatus.getServerStatus(ip, port, function (serverInfo) {
var serverToken = {};
serverToken.ip = ip;
serverToken.serverName = serverInfo.serverName;
serverToken.playerCount = serverInfo.numberOfPlayers + "/" + serverInfo.maxNumberOfPlayers;
serverList.push(serverToken);
}); // end serverstatus
}); // end forEach
//4) Pass that out to our res.render
res.render('pages/index', { servers: serverList });
}); //End db.all
数组应该被填充,对吧?如果这只是一个异步问题,那么使执行顺序工作的良好实现是什么?
不能在这样的循环中使用异步获取结果的函数。您应该使用async.each
:
var serverList = [];
async.each(servers, function eachServer(server, done) {
server.getItsThing(function onThing(err, thing) {
if (err) return done(err);
serverList.push(thing);
});
}, function onAllServersDone() {
res.render('pages/index', { servers: serverList});
});
相关文章:
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- 不确定我在PHP AJAX中使用的是什么开发模式
- 传递数量不确定的可能嵌套的对象属性
- 不确定react.js的异步执行时间
- 使用JavaScript进行即时验证-不确定从哪里开始
- Javascript正则表达式失败,但不确定原因
- 如何在 html 和 javascript 中显示隐藏不确定的循环进度条
- 不确定如何标记 OnClick 事件
- Getting a Maximum call stack size exceeded error,但不确定原因
- 意外的令牌,但不确定原因
- onclick启动打开弹出窗口的javascript-不确定函数调用
- JQuery 选择子元素(如果不是直接在父元素下,则不确定是否可选)
- 不确定为什么使用$(this)的函数没有'不起作用
- 不确定touche.js是否就是这样工作的
- 我不确定我缺少什么才能使此应用程序在Websockets上在Google Cloud上正常工作
- 不确定如何调试以下内容:未捕获的语法错误:意外的令牌 [.
- 茉莉花的业力:期待不确定
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- 试图传递一个填充数组到我的res.render.不确定如何进行适当的异步回调