0

我想从数据库中检索唯一 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; 
    }
4

1 回答 1

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.

于 2012-07-10T15:33:48.260 回答