无法使用socketIO获取对象内部函数的值

时间:2017-04-23 04:21:37

标签: javascript function object socket.io

我正在尝试将一个对象从我的套接字文件传递到我的html文件,并打印出一个位于其中的函数值。但我一直收到这个错误 未捕获的TypeError:无法读取未确定的属性“已确认”

socket.js

function querys() {
                var queryString1 = 'SELECT contacts.id, userId, contactId, confirmed, username FROM contacts LEFT JOIN users on contacts.contactId = users.id WHERE userId = ?';
                var buddy = new Object();

                connection.query(queryString1,[id], function(err, rows, fields) {//look for all requests started by another user
                    if (err) throw err;
                    for (var i in rows) {
                        buddy[i] = (
                            {
                                id : rows[i].contactId, 
                                username : rows[i].username, 
                                sender : false, 
                                connectionId : rows[i].id,
                                confirmed : function() {
                                    if(rows[i].confirmed == 0)
                                        return false;
                                    else
                                        return true;
                                }
                            }
                        );
                    }
                    socket.emit('print', buddy);                    
                });
            }

在html文件中的功能

socket.on('print', function(buddy) {
                    alert(buddy[0].confirmed());
                }

奇怪的是,如果你要求它打印对象的其他值,但我似乎无法打印出对象内的函数。

1 个答案:

答案 0 :(得分:0)

您无法通过socket.io传输函数,只能传输json数据。我建议只发送confirmed作为布尔值。