Как отправить в конкретный сокет с помощью обратного вызова?

Привет, я хочу передать в конкретный сокет, который я сохранил в переменной:

 socket.on('register', () => {
     clintToEmitTo = socket.id;
     console.info('clint To Emit To Socket ID ', clintToEmitTo);
 });

Я знаю, что для отправки в конкретный сокет мне нужно сделать следующее:

 socket.to(clintToEmitTo).emit('getName', (response) => {
    console.info(response);
 });

Однако я хочу иметь возможность использовать обратный вызов или подтверждение, вот что я получаю:

(node:1956) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Callbacks are not supported when broadcasting (node:1956) [DEP0018]

обратите внимание: событие emit может быть вызвано другим клиентским событием, поэтому я не добавил обратный вызов для зарегистрированного события

emit ожидает, что какой-то объект будет вторым параметром, вы передаете function, может быть в этом проблема? попробуйте переместить обратный вызов функции как третий параметр.
Dario 01.05.2018 11:59

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

Nero 01.05.2018 12:07
socket.to(clintToEmitTo).emit('getName', '', (response) => { console.info(response); });
Dario 01.05.2018 12:10

да, это выходит с той же ошибкой

Nero 01.05.2018 12:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
136
1

Ответы 1

Просто отправить что-нибудь? :

  socket.to(clintToEmitTo).emit('getName', "something");

это не имеет значения, вы все равно получите ту же ошибку, если у вас есть обратный вызов. socket.to (clintToEmitTo) .emit ('getName', "что-то") или socket.to (clintToEmitTo) .emit ('getName') будет работать нормально, но вы не сможете выполнить обратный вызов

Nero 01.05.2018 12:06

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