Синхронизировать массив с JavaScript

Интересно, есть ли способ синхронизировать объекты / методы в JavaScript таким же образом, как вы можете сделать это в Java. Я разрабатываю интерфейс для нового WebSocket в HTML5 и мне нужен способ сопоставления исходящих запросов с входящими ответами. Поэтому я сохраняю запросы (с уникальным идентификатором) в массиве на стороне клиента, а затем перебираю массив, когда получаю ответ, ища соответствующий запрос.

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

Так как мне решить эту проблему? Сначала я хотел просто синхронизировать массив, как это можно было бы сделать в Java (поставить блокировку на объект и заставить другие функции ждать), но я не нашел синтаксиса того, как бы я делал это в JavaScript.

1 ответ

Решение

Javascript запускается в одном потоке в браузере, поэтому нет необходимости синхронизировать.

Смотрите здесь для деталей. Смотрите также этот вопрос и ответы (почему JavaScript не поддерживает многопоточность?).

Другие вопросы по тегам