событие не вызывается на socket.on ('connect', событие) - PullRequest
0 голосов
/ 12 мая 2018

У меня проблема с socket.io, по крайней мере, я думаю, что функция в моем клиентском коде не вызывается на socket.on('connect', onsocketConnected);

Однако, если я поставлю условное выражение, например:

if(socket.connect) {
    onsocketConnected();
}  

Тогда моя функция вызывается. Также я просто понял, если я напишу это как
socket.on('connect', onsocketConnected()); что моя функция вызывается правильно. Мой вопрос заключается в том, подключается ли клиент с сервером к соединению, значение которого автоматически передается клиенту? Глядя на документацию по https://socket.io/docs/client-api/, говорится, что она должна работать как socket.on(event, callback function).
Всегда ли требуется скобка в функции обратного вызова для ее работы? Потому что кажется, что они работают в другом месте без скобок. Любые ресурсы или ссылки на документацию очень ценятся.

1 Ответ

0 голосов
/ 12 мая 2018

Чтобы вызвать функцию (обратный вызов или что-то еще), пока функция не получает аргументов, вы все равно должны вызывать ее с помощью (). И.Е .: onsocketConnected();

Причина, по которой socket.on('connect', onsocketConnected); не сработал, состоит в том, что вы пропускаете () при вызове функции.
То, что вы делаете этим, просто передает переменную / объект (который не существует) onsocketConnected методу socket.on вместо передачи функции .

Правильный способ его использования, такой же, как вы набрали впоследствии: socket.on('connect', onsocketConnected());

Документация об аргументах функции JS: http://devdocs.io/javascript/functions/arguments

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