При объявлении обработчика события в обработчике, имеет ли внутренний обработчик доступ к аргументам, переданным внешнему обработчику? - PullRequest
0 голосов
/ 16 мая 2019

Я просматриваю некоторый код nodejs и обнаружил что-то, что мне не подходит. Это связано с обработкой событий сокета. Похоже, что обработчик сообщений on, объявленный в обработчике подключений, использует объект сокета, который был передан во время события соединения. Эта переменная действительна позже, когда произошло событие сообщения? Вот схема кода:

Кажется, это работает, но я не уверен, правильно ли это.

io.on('connection', (socket) => {
  socket.on('message', (msg) => {
    socket.emit('data', databuf)
  }
})

Имеет ли оператор socket.emit допустимый объект сокета в этот момент?

1 Ответ

0 голосов
/ 16 мая 2019

Да, у вас есть доступ ко всем областям родительских функций в дочерних функциях.Пока вы держите его в тех же фигурных скобках, у вас есть доступ.(или если это глобальная переменная)

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