javascript - 使用emit返回/分配变量

标签 javascript node.js

我在文件 server.js 中有一些变量(它们经常更改),我想在客户端发送请求(发出验证)时将它们传递给 client.js。该事件已发出,但客户端的 var obj 永远不会更新。如果有人告诉我返回/分配变量的正确方法是什么,我将不胜感激。

服务器.js

socket.on('validate', function (obj) {
  console.log("Validate");
  obj.id = 1;
});

客户端.js

var obj = {id : 0};
socket.emit('validate', [obj]);
console.log(obj.id);

控制台输出:

Validate
0 // Should be 1

最佳答案

你需要在server.js中有一个socket.emit方法,在client.js中有相应的socket.on方法,以便它们进行通信。

服务器.js

socket.on('validate', function (obj) {
  console.log("Validate");
  obj.id = 1;
  socket.emit("validateSuccess", obj);
});

客户端.js

var obj = {id : 0};
socket.emit('validate', [obj]);
socket.on("validateSuccess", function(obj) {
  console.log(obj.id);  
});

关于javascript - 使用emit返回/分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36412323/

相关文章:

javascript - 如何将样式表粘贴到 Rally 应用程序的新文档窗口中

javascript - 防止 redux 存储值在组件中再次被使用

javascript - 当结束值小于开始时,函数无法找到开始时间和结束时间之间的时间

javascript - 如何使用多个异步/等待功能?

sockets - Nodejs : many clients requests through one socket

node.js - Loopback 4 如何验证 requestBody 属性

javascript - 函数未正确返回

javascript - 将数组的第一项连接到第二个数组 JavaScript 的第一项

node.js - 使用 async.parallel 处理数组

javascript - 使用 PHP 实现 Materializecss Toast