我试图将一个对象从我的套接字文件传递到我的 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/