當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript EventEmitter.EventEmitter類代碼示例

本文整理匯總了TypeScript中common/EventEmitter.EventEmitter的典型用法代碼示例。如果您正苦於以下問題:TypeScript EventEmitter類的具體用法?TypeScript EventEmitter怎麽用?TypeScript EventEmitter使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了EventEmitter類的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: describe

describe('EventEmitter', () => {
  let eventEmitter: EventEmitter;

  beforeEach(() => {
    eventEmitter = new EventEmitter();
  });

  describe('emit', () => {
    it('should emit events to listeners', () => {
      let count1 = 0;
      let count2 = 0;
      const listener1 = () => count1++;
      const listener2 = () => count2++;
      eventEmitter.on('test', listener1);
      eventEmitter.on('test', listener2);
      eventEmitter.emit('test');
      assert.equal(count1, 1);
      assert.equal(count2, 1);
      eventEmitter.emit('test');
      assert.equal(count1, 2);
      assert.equal(count2, 2);
    });

    it('should manage multiple listener types', () => {
      let count1 = 0;
      let count2 = 0;
      const listener1 = () => count1++;
      const listener2 = () => count2++;
      eventEmitter.on('test', listener1);
      eventEmitter.on('foo', listener2);
      eventEmitter.emit('test');
      assert.equal(count1, 1);
      assert.equal(count2, 0);
      eventEmitter.emit('foo');
      assert.equal(count1, 1);
      assert.equal(count2, 1);
    });
  });

  describe('listeners', () => {
    it('should return listeners for the type requested', () => {
      assert.equal(eventEmitter.listeners('test').length, 0);
      const listener = () => {};
      eventEmitter.on('test', listener);
      assert.deepEqual(eventEmitter.listeners('test'), [listener]);
    });
  });

  describe('off', () => {
    it('should remove the specific listener', () => {
      const listener1 = () => {};
      const listener2 = () => {};
      eventEmitter.on('foo', listener1);
      eventEmitter.on('foo', listener2);
      assert.equal(eventEmitter.listeners('foo').length, 2);
      eventEmitter.off('foo', listener1);
      assert.deepEqual(eventEmitter.listeners('foo'), [listener2]);
    });
  });

  describe('removeAllListeners', () => {
    it('should clear all listeners', () => {
      eventEmitter.on('foo', () => {});
      assert.equal(eventEmitter.listeners('foo').length, 1);
      eventEmitter.removeAllListeners('foo');
      assert.equal(eventEmitter.listeners('foo').length, 0);
    });
  });
});
開發者ID:sourcelair,項目名稱:xterm.js,代碼行數:69,代碼來源:EventEmitter.test.ts

示例2: it

 it('should remove the specific listener', () => {
   const listener1 = () => {};
   const listener2 = () => {};
   eventEmitter.on('foo', listener1);
   eventEmitter.on('foo', listener2);
   assert.equal(eventEmitter.listeners('foo').length, 2);
   eventEmitter.off('foo', listener1);
   assert.deepEqual(eventEmitter.listeners('foo'), [listener2]);
 });
開發者ID:sourcelair,項目名稱:xterm.js,代碼行數:9,代碼來源:EventEmitter.test.ts


注:本文中的common/EventEmitter.EventEmitter類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。