см. список прослушивателей событий в настоящее время - PullRequest
1 голос
/ 30 января 2020

Я хочу проверить список слушателей событий, которые добавляются. Например, я использовал код cy.on('pan zoom resize', update); и добавил функцию с именем update для l oop. Я делаю это много раз. Я также звоню cy.off('pan zoom resize', update);, чтобы удалить слушателей событий, но я хочу быть уверен в этом.

Единственное, о чем я могу думать, это использовать console.log, но этот метод может оказаться бесполезным.

Я также думаю, что в некоторых местах люди забывают удалить слушателей событий и просто всегда добавляют , При слишком большом количестве повторений это может вызвать проблемы.

1 Ответ

1 голос
/ 30 января 2020

В частном объекте cytoscape есть поле данных с именем listeners. Вы можете видеть, что если вы:

  • console.log() объект cy,
  • перейдите к _private,
  • и откроете объект emitter
  • и, наконец, go до listeners

Это массив, в котором перечислены все прослушиватели событий, определенные по умолчанию и определенные пользователем, с некоторыми метаданными, такими как событие , тип и область действия слушателя.

Вы можете получить доступ к этому в своем коде, просто позвонив по номеру

cy.emitter().listeners

Теперь возникает вопрос: зачем вам эта информация вообще? Как правило, вы должны быть в порядке, если вы наберете cy.off('eventXY', ...) перед тем, как использовать cy.on('eventXY', ...). Вы уверены, что это нужно для работы вашего приложения? Возможно, более подробно рассмотрим основную проблему (зачем вам эта информация в первую очередь).

Спасибо и хорошего дня!

...