node.js - 使用 Socket.IO 设置和获取 session 数据时,传递的函数有何用途?

标签 node.js socket.io

以下代码片段取自 Socket.IO 网站,

socket.set('nickname', name, function () {
    socket.emit('ready');
});

设置客户端数据时,传入的函数是做什么用的?它是否只是用于在设置数据后触发该函数?如果是这样,有什么区别:

socket.set('nickname', name);
socket.emit('ready');

还有下面的 err 的用途:

socket.get('nickname', function (err, name) {
    console.log('Chat message by ', name);
});

最佳答案

when setting client data, what's the passed function used for

这是一个异步回调,这意味着它是一个在 set 操作完成后调用的函数

If so, what's the difference with...

差别很大。 socket.set 是非阻塞的,这意味着该方法将被调用,但进程将继续执行以下代码,而不等待其完成。这意味着 socket.emit 将在 set 完成之前被调用。

Also what is 'err' used for in the following:

err 可能是连接错误或 get 方法期间出现的任何错误

关于node.js - 使用 Socket.IO 设置和获取 session 数据时,传递的函数有何用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10216682/

相关文章:

javascript - 如何在 Socket.IO 中取消、超时或清除排队消息

node.js - Socket IO 无限循环超过 1000 个连接

node.js - 客户端和服务器端之间的 Socket.io 连接失败(Reacr/Node.js)

node.js - 使用 node.js 从谷歌云存储中删除多个对象(文件和文件夹)的最佳做法是什么

node.js - 如何在使用 s3-stream 记录器 Node 模块重新启动服务器后将内容附加到日志文件中并上传到 s3?

node.js - Node 获取请求响应不完整

javascript - Socket.io "on"函数 - 传递附加参数

javascript - 身份验证 ExpressJS -> PassportJs : Error: Can't set headers after they are sent

node.js - 如何在没有 --bare 的情况下使用 Coffeescript 在 node.js 中 stub "global"模块变量?

javascript - Node.js + Socket.io : Client not receiving message