Set listener for event that will fire at most as many times as $limit is set to, but only after $ticks number of
events is emitted. This method returns EventListener
/** * @see EventEmitterInterface::delayTimes */ public function delayTimes($event, $ticks, $limit, callable $listener) { $handler = $this->emitter->delayTimes($event, $ticks, $limit, $listener); return new EventListener($this, $handler->getEvent(), $handler->getHandler(), $handler->getListener()); }
/** * @dataProvider emitterProvider */ public function testApiDelayTimes_AttachesProperOnceHandler_UsingSeveralHandlers(EventEmitterInterface $emitter) { $emitter->delayTimes('test', 2, 2, $this->expectCallableTwice()); $emitter->delayTimes('test', 3, 1, $this->expectCallableOnce()); $emitter->emit('test'); $emitter->emit('test'); $emitter->emit('test'); $emitter->emit('test'); $emitter->emit('test'); }