Я ищу способ проверить, было ли событие сработало только один раз в Javascript, если оно сработало при некоторых обстоятельствах из другого события. Я понимаю, что могу сделать это, создав шпионскую функцию, которая записывает, сколько раз она была вызвана, например, с помощью библиотеки sinon
:
var spy = sinon.spy;
elem.addEventListener('myTriggeredEvent', spy);
elem.dispatchEvent('myTriggeringEvent');
elem.dispatchEvent('myTriggeringEvent');
// assert(spy.calledOnce);
В этом примере myTriggeringEvent
испускает myTriggeredEvent
в первый раз, но не во второй раз, когда оно испускается. Мне нужно утверждать, где-то в моем коде, что шпион был вызван один раз, и я могу добавить другого слушателя к myTriggeringEvent, чтобы сделать это, но я не думаю, что это будет гарантировать, что новый слушатель будет вызван после всех других слушателей myTriggeringEvent было завершено. Каков хороший способ проверить, что myTriggeredEvent был запущен только один раз?