gpt4 book ai didi

javascript - 将 0.9.16 升级到 1.3.5 时,带有回调的 SocketIO 发出失败

转载 作者:IT老高 更新时间:2023-10-28 23:08:35 24 4
gpt4 key购买 nike

在 0.9.16 中,我将 socket.emit 与回调一起使用,以便聊天服务器返回一些数据,并且我可以根据确认处理结果。但升级到 1.3.5 后,我发现控制台出现这样的错误

Uncaught TypeError: Cannot read property 'apply' of undefined.

我做过类似的事情,

来自网络

socket.emit('userToUser', { 'usename': 'John',
'message': 'hi'
}, function(callback){
//callback handled
});

聊天服务器

socket.on('userToUser', function(content, callback){
//do something
if(callback) return callback({'result':'success', 'messageid':content.messageid, 'chatid':content.chatid});
});

当我从客户端删除回调时,没有错误。所以我相信在回调中会有一些改变。

我得到确认并且聊天正常工作,但我担心导致 socketio.js 的控制台错误

Socket.prototype.onack = function(packet){
debug('calling ack %s with %j', packet.id, packet.data);
var fn = this.acks[packet.id];
fn.apply(this, packet.data);
delete this.acks[packet.id];
};

各位,请帮忙

最佳答案

我终于解决了这个问题。这是我的代码中的一个错误,我在聊天服务器中进行了多次回调。像这样:

socket.on('userToUser', function(content, callback){

mysql.insertChat(content, function(err, data){
return callback({'result':'1'}) //first callback
})
sendToUser(content, function(errm successData){
return callback({'result':'success','chatid':content.chatid});
//second callback ->wrong
})

});

In the previous versions it was a warning, now its an error !! That's it. So please avoid multiple callbacks

请看看这个,它可能对每个 nodejs 开发人员都有用: http://www.toptal.com/nodejs/top-10-common-nodejs-developer-mistakes/#remote-developer-job

感谢大家的支持!

关于javascript - 将 0.9.16 升级到 1.3.5 时,带有回调的 SocketIO 发出失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29935861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com