gpt4 book ai didi

javascript - 更改 socket.on 中的变量

转载 作者:行者123 更新时间:2023-11-29 22:12:40 26 4
gpt4 key购买 nike

我正在尝试使用 node.js 做一个项目,但我遇到了显示变量的问题。

客户端这部分代码:

$(document).ready(function () {
var socket = io.connect('http://localhost:8000');
var a = 0;
var b = 0;

socket.on('request', function (data) {
a = data;
});

socket.on('read', function (data) {
b = data;
});

var q = a * b;
$('span#calculate').html(q);

// Etc...
});

通常它应该显示这个计算的结果,但它仍然显示一个0(这意味着变量在socket.on中没有改变)。

我该如何解决这个问题?

最佳答案

欢迎来到异步代码的世界!没有什么是线性运行的。

您的代码只是为事件 readrequest 添加监听器,而不是实际更改 ab。因此,ab 仍然是 0 直到处理程序被执行,这将是服务器发送 read请求 事件。

您可以做的是将事件触发后发生的任何事情放在一个函数中。然后在事件处理程序中调用该函数:

$(document).ready(function () {
var socket = io.connect('http://localhost:8000');
var a = 0;
var b = 0;
var calculate = $('span#calculate');

function recalculate(q) {

calculate.html(q);

//more...
}

socket.on('request', function (data) {
a = data;
recalculate(a * b);
});

socket.on('read', function (data) {
b = data;
recalculate(a * b);
});

});

关于javascript - 更改 socket.on 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17252020/

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