Самый эффективный способ обнаружить измененную переменную и выполнить обратный вызов - PullRequest
0 голосов
/ 10 июля 2019

Я хотел бы определить, когда значение переменной обновляется на сервере, и выполнить обратный вызов, который отправляет новое значение клиенту, чтобы обеспечить подачу в реальном времени. Например, скажем, сервер генерирует случайное число через случайные интервалы, но для клиента важно знать, что новое число генерируется, как только это происходит.

Одним из простых решений является определение пользовательской функции, которую вы используете для установки значения вместо прямой установки его с помощью '=':

function setValue(val) { a = val; websocket.send(a) }

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

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

Я не пишу профессионально, поэтому я не уверен, какое из этих решений будет более широко распространено, или если есть лучший способ, к которому я должен подходить. Также не уверен в том, что это может повлиять на производительность, но я думаю, что это ничтожно мало.

1 Ответ

2 голосов
/ 10 июля 2019

Определить пользовательскую функцию. Возьмите боль от рефактора и держите его читабельным. Кодирование - это 20% создания и 80% обслуживания, но это всегда похоже на 99% создания и 1% обслуживания, когда вы находитесь в гуще создания чего-то нового.

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