如何执行同步WebSocket连接

57hvy0tb  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(140)

我写了一段使用WebSockets连接的代码。然而,当我寻找要关闭的连接时,它会继续执行而不等待连接关闭。换句话说,“connection.onclose”是异步的,我怎么才能使它同步呢?我不太用JavaScript编写代码。所以我发现如果有人以同步的方式重写这段代码会很有帮助。

var connection = new WebSocket('wss://IP:PORT');
connection.onclose = function (event) {
    e = (event.code);

}
alert('message!')

字符串

w80xi6nr

w80xi6nr1#

JavaScript不允许你在同步代码中等待,所以让它异步。如果你需要它是同步的,那么它是可能的,但不是理想的。

同步

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!');
})();

相关问题