test('deferred emit', function () { var calledCount = 0; eventEmitter.addListener('eventType', function (e) { calledCount++; }); eventEmitter.deferredEmit(function () { assert.equal(calledCount, 0); eventEmitter.emit('eventType', {}); assert.equal(calledCount, 0); eventEmitter.emit('eventType', {}); assert.equal(calledCount, 0); }); assert.equal(calledCount, 2); });
test('two event emitters, two listeners, deferred emit', function () { let callCnt = 0; let emitter1 = new EventEmitter(); let emitter2 = new EventEmitter(); let eventBus = new EventEmitter(); eventBus.addEmitter2(emitter1); eventBus.addEmitter2(emitter2); eventBus.addListener2('eventType1', function (e) { assert(true); callCnt++; }); eventBus.addListener2('eventType1', function (e) { assert(true); callCnt++; }); eventBus.deferredEmit(function () { assert.equal(callCnt, 0); emitter1.emit('eventType1', {}); emitter2.emit('eventType1', {}); assert.equal(callCnt, 0); }); assert.equal(callCnt, 4); });
test('add 2 listeners, emit event, remove one while processing', function () { var firstCallCount = 0; var remove1 = eventEmitter.addListener('eventType', function (e) { firstCallCount++; remove1(); }); var secondCallCount = 0; eventEmitter.addListener('eventType', function (e) { secondCallCount++; }); eventEmitter.emit('eventType', {}); eventEmitter.emit('eventType', {}); assert.equal(firstCallCount, 1); assert.equal(secondCallCount, 2); });
test('add 2 listeners, emit event, remove one while processing', function () { let firstCallCount = 0; let remove1 = eventEmitter.addListener2('eventType', function (e) { firstCallCount++; remove1.dispose(); }); let secondCallCount = 0; eventEmitter.addListener2('eventType', function (e) { secondCallCount++; }); eventEmitter.emit('eventType', {}); eventEmitter.emit('eventType', {}); assert.equal(firstCallCount, 1); assert.equal(secondCallCount, 2); });
test('deferred emit maintains events order', function () { var order = 0; eventEmitter.addListener('eventType2', function (e) { order++; assert.equal(order, 1); }); eventEmitter.addListener('eventType1', function (e) { order++; assert.equal(order, 2); }); eventEmitter.deferredEmit(function () { eventEmitter.emit('eventType2', {}); eventEmitter.emit('eventType1', {}); }); assert.equal(order, 2); });
public dispose() { this.domNode = null; this.eventEmitterHelper.dispose(); if (this.gestureHandler) { this.gestureHandler.dispose(); this.gestureHandler = null; } }
private _onUserActive(): void { this._lastActiveTime = (new Date()).getTime(); if (this._status !== UserStatus.Active) { this._status = UserStatus.Active; this._scheduleIdleCheck(); this._eventEmitter.emit('onActive'); } }
test('cascading emitters', function () { var emitter1 = new EventEmitter(); var emitter2 = new EventEmitter(); var emitter3 = new EventEmitter(); var emitter4 = new EventEmitter(); emitter2.addEmitter(emitter1); emitter3.addEmitter(emitter2); emitter4.addEmitter(emitter3); var didCall = false; emitter4.addListener('eventType', function (e) { didCall = true; }); emitter1.emit('eventType', {}); assert(didCall); });
public addScrollListener(callback:()=>void): IDisposable { var localDisposable = this.eventEmitterHelper.addListener2('scroll', callback); var domDisposable = DomUtils.addDisposableListener(this.domNode, 'scroll', (e:Event) => { this.eventEmitterHelper.emit('scroll', { browserEvent: e }); }); return { dispose: () => { domDisposable.dispose(); localDisposable.dispose(); } } }
test('one event emitter, one listener', function () { var emitter = new EventEmitter(); var eventBus = new EventEmitter(); eventBus.addEmitter(emitter, 'emitter1'); var didCallFirst = false; eventBus.addListener('eventType', function (e) { didCallFirst = true; }); var didCallSecond = false; eventBus.addListener('eventType/emitter1', function (e) { didCallSecond = true; }); emitter.emit('eventType', {}); assert(didCallFirst); assert(didCallSecond); });