Выполнение обратного вызова прослушивателя WebSocket в браузере - PullRequest
0 голосов
/ 06 февраля 2019

Мой вопрос очень прост.С учетом этого фрагмента кода:

// Create WebSocket connection.
const socket = new WebSocket('ws://localhost:8080');

// Listen for messages
socket.addEventListener('message', function (event) {
    console.log('Message from server ', event.data);
});

Будет ли обратный вызов on 'message' выполняться как микро или макрос задача в цикле событий?

Длинная история

Причина, по которой я спрашиваю, состоит в том, что однажды с нами случилось, что поток пользовательского интерфейса и цикл событий, казалось бы, были полностью заняты обработкой большого количества сообщений WS, в то время какне так много других обратных вызовов были выполнены.

Поэтому я пришел к выводу, что обратный вызов обработчика сообщений WS запланирован как микро задача.Поскольку их было слишком много, следующий тик и, следовательно, следующий набор макрозадач не могли быть выполнены вовремя.

Решением было перенести обработку WS на веб-работника, где мы использовали отдельный потоки поток пользовательского интерфейса снова был свободен для рендеринга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...