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

标签 javascript function object socket.io

我试图将一个对象从我的套接字文件传递到我的 html 文件并打印出位于其中的函数值。但我不断收到此错误 未捕获的类型错误:无法读取未定义的“已确认”属性

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());
                }

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

最佳答案

你不能通过socket.io传输函数,只能传输json数据。我建议仅将 confirmed 作为 bool 值发送。

关于javascript - 无法使用socketIO获取对象内部函数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567340/

相关文章:

javascript - Sencha Cmd 5 共享包集成工作流程

javascript - 更改div样式时如何进行平滑更改

javascript - 连续运行一个javascript函数

java - 我的面向对象程序不会注册哨兵值并存在循环

java - 在 arrayList 中查找特定对象

javascript - 来自 php json 的 highchart feed 数据

javascript - 如何从日期字符串中删除时间

c - C定义的strtok函数

c++ - 使用给定参数调用构造函数的可变参数函数

Python 类/对象 __str__ 和其他问题