如何执行同步 WebSocket 连接
How can I carry out a Synchronous WebScoket Connection
我写了一段使用 webscokets 连接的代码。但是,当我正在寻找要关闭的连接时,它会继续执行而不等待连接关闭。换句话说 'connection.onclose' 是异步的,我怎样才能让它同步。我在 java 中编写的代码不多。因此,如果有人以同步方式重新编写这段代码,我会发现它非常有帮助。
var connection = new WebSocket('wss://IP:PORT');
connection.onclose = function (event) {
e = (event.code);
}
alert('message!')
JavaScript 不允许您在同步代码中 wait,因此请使其异步。如果你需要它是同步的,那么它是可以的,但并不理想。
同步
var connection = new WebSocket('wss://IP:PORT');
var e;
function nextstuff() {
alert('message!');
};
connection.onclose = function (event) {
e = (event.code);
nextstuff();
};
异步
(async function() {
var connection = new WebSocket('wss://IP:PORT');
var e;
await new Promise(function(res) {
connection.onclose = function (event) {
e = event.code;
res(event);
}
});
alert('message!');
})();
我写了一段使用 webscokets 连接的代码。但是,当我正在寻找要关闭的连接时,它会继续执行而不等待连接关闭。换句话说 'connection.onclose' 是异步的,我怎样才能让它同步。我在 java 中编写的代码不多。因此,如果有人以同步方式重新编写这段代码,我会发现它非常有帮助。
var connection = new WebSocket('wss://IP:PORT');
connection.onclose = function (event) {
e = (event.code);
}
alert('message!')
JavaScript 不允许您在同步代码中 wait,因此请使其异步。如果你需要它是同步的,那么它是可以的,但并不理想。
同步
var connection = new WebSocket('wss://IP:PORT');
var e;
function nextstuff() {
alert('message!');
};
connection.onclose = function (event) {
e = (event.code);
nextstuff();
};
异步
(async function() {
var connection = new WebSocket('wss://IP:PORT');
var e;
await new Promise(function(res) {
connection.onclose = function (event) {
e = event.code;
res(event);
}
});
alert('message!');
})();