我想从数据库中检索唯一ID并将它们存储到对象(userslist
)中。
为什么我无法将数据检索到对象中?
对象userslist
为空{}
我在Node.js中有这个功能:
getOnlineUsers: function()
{
var userslist = {};
client.query(
'SELECT DISTINCT Aid FROM online',
function selectCb(err, results, fields) {
if (err) {
throw err;
}
if (results.length > 0) {
for (var i = 0; i < results.length; i++) {
var reader = results[i];
userslist[reader['Aid']] = {
fbid: reader['Aid']
}
}
}
}
);
return userslist;
}
答案 0 :(得分:1)
以上是上述评论中讨论的一个例子。
将回调传递给getOnlineUsers
...
my_obj.getOnlineUsers(function(u_list) {
/* do something with the user list */
});
让getOnlineUsers
接收回调参数,然后调用它......
// receive the callback----v
getOnlineUsers: function(cb_func) {
client.query(
'SELECT DISTINCT Aid FROM online',
function selectCb(err, results, fields) {
if (err) {
throw err;
}
var userslist = {}
if (results.length > 0) {
for (var i = 0; i < results.length; i++) {
var reader = results[i];
userslist[reader['Aid']] = {
fbid: reader['Aid']
}
}
}
cb_func(userslist); // <-- invoke the callback, passing the data
});
}
这是一种方法,但基本上说明了代码流的延续需要在传递给client.query
的回调中进行。