Я хотел бы знать, если это хорошая практика, чтобы использовать событие для связи между функциями внутри ExpressJS ?. Если да, то как я могу отправить аргументы вдоль моего события emit?Как использовать события с узлом JS?
ответ
В API Ссылка: http://nodejs.org/api/events.html#events_emitter_emit_event_arg1_arg2
Вот пример:
var emitter = new EventEmitter();
emitter.on('stack', function(name, message) {
console.log("I got the event", name, message);
});
emitter.emit('stack, 'eventName', 'I like arguments');
Это зависит. Если у вас действительно асинхронная связь между функциями, тогда события должны быть рассмотрены. «Поистине» означает, что поток выполнения вызываемой функции прерывается с помощью setInterval, nextTick или syncIO (просто использование обратного вызова не обязательно асинхронно). Если это не так, вы не можете использовать события, поскольку они будут выпущены до того, как ваша функция вызова сможет установить на нее слушателя.
События требуют больше работы в вызываемой функции - вам нужно создать экземпляр EventEmitter и передать его обратно, на котором вызывающий абонент установит слушателя. Затем ваша вызываемая функция выдает события (события).
Если ваши отношения между функциями взаимно однозначны (запрос/ответ), а результат - успех/неудача, то проще просто иметь обратный вызов.
Если ваша асинхронно вызываемая функция может излучать события несколько раз или есть более чем несколько результатов, события хорошо подходят.
Что касается аргументов, пожалуйста, посмотрите на документе: http://nodejs.org/api/events.html
emitter.emit(event, [arg1], [arg2], [...])
спасибо, что посмотрели. это делало вещи более ясными. Теперь для меня остается последний вопрос. объект эмиттера события может быть уникальным (например, глобальная переменная), или я могу создать его каждый раз, когда я хочу выпустить событие. – user2422940
Вам не нужно создавать новый экземпляр EventEmitter каждый раз, когда вы хотите испускать события. Вы можете обойти объект и испустить события на нем в любой части вашего кода. EventEmitter - это объект, который опосредует связь между функциями - события можно прослушивать и выходить из любого места. – YuraA
- 1. Как использовать автозаполнение jquery с узлом js
- 2. Какой шаблонный движок использовать с узлом js
- 3. Геокомплект с узлом JS
- 4. Как создать ajax POST с узлом JS?
- 5. Диспетчер с узлом JS
- 6. Использование String.raw() с узлом JS
- 7. Связывание события с текстовым узлом
- 8. Как использовать compareTo с узлом?
- 9. AJAX, с узлом js-сервера
- 10. User authification с узлом js
- 11. Регистрация с экспресс-узлом JS
- 12. Запуск js-файла с узлом
- 13. Проблема с узлом JS обещания
- 14. Работа с узлом js и угловым js
- 15. Загрузка заголовка с узлом js
- 16. Как написать файл с узлом webkit js?
- 17. orientdb как запрос с узлом js
- 18. npm проблемы с джойстиком с узлом js
- 19. Pusher JS не работает с узлом JS в некоторой сети
- 20. XMLhttpRequest с узлом js-сервера с выраженным
- 21. CRM WebAPI 2016 с узлом js
- 22. Как не использовать встроенные события js?
- 23. MVC с AngularJS и узлом js
- 24. Bootstrap и Jquery с узлом JS
- 25. Работа с угловыми js, узлом js server и express js
- 26. угловой HTTP GET с узлом JS
- 27. использовать плагин NPAPI с узлом
- 28. Отправить электронное письмо с узлом JS
- 29. GET вызов с узлом js с заголовками
- 30. Как обмениваться узлом JS и Kinect?
Что означает «связь между функциями» означает? –
Большинство реализаций javascript основаны на циклах событий (nodejs определенно основаны на циклах событий) - поэтому использование событий - определенно хорошая практика для некоторых задач - не могли бы вы быть более конкретными и представить пример кода. – Soren
К сожалению, я не могу предоставить образец кода. но я могу объяснить больше своей идеи. причина, по которой я рассматриваю возможность использования событий, - это. когда пользователь подключается к моему приложению, событие должно запускаться. это событие содержит информацию о пользователе (идентификатор, имя и другие учетные данные). событие вызовет функцию, которая работает в фоновом режиме, когда пользователь перенаправляется на свою домашнюю страницу. – user2422940