Как сделать ожидание коннекта к WebSocket?
// Соединение
const socket = new WebSocket('ws://localhost:8888')
// Очередь сообщений
let queue = []

// Отправляет сообщение
function sendMessage(message) {
    // Проверка, установлено ли соединение
    if (socket.readyState !== WebSocket.OPEN) {
        // Ежели нет, добавляем сообщение в очередь
        queue.push(message)
        return
    }
    
    // Отправляет сообщение, если есть соединение
    socket.send(message)
}

// Обработка события открытия соединения
socket.addEventListener('open', () => {
    // При открытии соединение тут же отправляем накопленные сообщения
    queue.forEach(message => {
        sendMessage(message)
    })
    
    // Очищаем очередь
    queue = []
})
Очевидно логику надо выполнять тогда, когда соединение уже установлено. Событие онопен явно подходит https://learn.javascript.ru/websockets