Espruino:Справочник по API/Класс Object/on(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= ==Синтакс...»)
 
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=<ref>[ www.espruino.com - ]</ref>=
=Функция Object.on()<ref>[https://www.espruino.com/Reference#l_Object_on www.espruino.com - function Object.on(event, listener)]</ref>=


==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
 
Object.on(event, listener)
</syntaxhighlight>
</syntaxhighlight>


==Параметры==
==Параметры==


 
* '''event''' – название события (например, 'data')
* '''listener''' – функция-обработчик, которую нужно вызвать при получении заданного события


==Возвращаемое значение==
==Возвращаемое значение==
Строка 21: Строка 22:
==Описание==
==Описание==


Задает обработчик события для текущего объекта. Например, Serial1.on('data', function(d) {...}).


Это то же самое, что и [https://nodejs.org/api/events.html EventEmitter] в Node.js, но в [[Espruino]] этот функционал встроен в каждый объект:
* [https://www.espruino.com/Reference#l_Object_on Object.on()]
* [https://www.espruino.com/Reference#l_Object_emit Object.emit()]
* [https://www.espruino.com/Reference#l_Object_removeListener Object.removeListener()]
* [https://www.espruino.com/Reference#l_Object_removeAllListeners Object.removeAllListeners()]
<syntaxhighlight lang="javascript">
var o = {}; // в «o» можно задать любой объект...
// при получении события 'answer' вызываем стрелочную функцию:
o.on('answer', x => console.log(x));
// при получении события 'answer' вызываем именованную функцию:
function printAnswer(d) {
  console.log("Ответ:", d);
}
o.on('answer', printAnswer);
// генерируем событие 'answer',
// в результате будут вызваны функции, заданные с помощью on():
o.emit('answer', 42);
// печатаем «42» и «Ответ: 42»
// если у вас именованная функция, ее можно удалить по названию:
o.removeListener('answer', printAnswer);
// теперь 'printAnswer' удалена
o.emit('answer', 43);
// печатаем «43»
// или можем удалить все обработчики для события 'answer':
o.removeAllListeners('answer')
// теперь ничего происходить не будет:
o.emit('answer', 44);
// ничего не печатаем
</syntaxhighlight>


== Примеры ==
== Примеры ==
Строка 29: Строка 61:
=См.также=
=См.также=


{{ads}}
 


=Внешние ссылки=
=Внешние ссылки=
Строка 35: Строка 67:
<references />
<references />


{{Навигационная таблица/Espruino}}
{{Навигационная таблица/Портал/Espruino}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 06:55, 24 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция Object.on()[1]

Синтаксис

Object.on(event, listener)

Параметры

  • event – название события (например, 'data')
  • listener – функция-обработчик, которую нужно вызвать при получении заданного события

Возвращаемое значение

Описание

Задает обработчик события для текущего объекта. Например, Serial1.on('data', function(d) {...}).

Это то же самое, что и EventEmitter в Node.js, но в Espruino этот функционал встроен в каждый объект:

var o = {}; // в «o» можно задать любой объект...
// при получении события 'answer' вызываем стрелочную функцию:
o.on('answer', x => console.log(x));
// при получении события 'answer' вызываем именованную функцию:
function printAnswer(d) {
  console.log("Ответ:", d);
}
o.on('answer', printAnswer);
// генерируем событие 'answer',
// в результате будут вызваны функции, заданные с помощью on():
o.emit('answer', 42);
// печатаем «42» и «Ответ: 42»
// если у вас именованная функция, ее можно удалить по названию:
o.removeListener('answer', printAnswer);
// теперь 'printAnswer' удалена
o.emit('answer', 43);
// печатаем «43»
// или можем удалить все обработчики для события 'answer':
o.removeAllListeners('answer')
// теперь ничего происходить не будет:
o.emit('answer', 44);
// ничего не печатаем

Примеры

См.также

Внешние ссылки