Когда я просматриваю учебные пособия / документацию по WebSockets, я нахожу код вроде this :
var ws = new WebSocket("ws://localhost:8765/dlt");
ws.onopen = () => {
// do some very important stuff after connection has been established
console.log("onopen");
}
Но как насчет условий гонки здесь?Чего-то избежать в JavaScript?
Например, этот код (который просто присваивает onopen
после соединения было открыто) завершится ошибкой:
var ws = new WebSocket("ws://localhost:8765/dlt");
setTimeout(() => {
ws.onopen = () => {
// do some very important stuff after connection has been established
console.log("onopen"); /// <== won't be called
}
}, 100);
МожетЯ уверен , что назначение было выполнено до установления соединения?
(Я пытался расширить WebSocket
с помощью пользовательского onopen()
метода, но, похоже, это не работает)
class MyWebSocket extends WebSocket {
onopen() {
console.log("onopen()");
/// do some very important stuff after connection has been established
}
}