项目作者: ziomecka

项目描述 :
Publisher-subscriber pattern
高级语言: JavaScript
项目地址: git://github.com/ziomecka/portfolio-js-publisher.git
创建时间: 2019-09-06T11:17:47Z
项目社区:https://github.com/ziomecka/portfolio-js-publisher

开源协议:

下载


npm version


About

  • Javascript implementation of publisher subscriber pattern
  • Can be used with various event emitters including browser’s window object
  • Provides Publisher class

Installation

  1. npm i publisher-subscriber-pattern

Example

The example uses the browser’s window object as emitterInstance.
Other valid emitter instances can be also used.

  1. import { Publisher } from 'publisher-subscriber-pattern';
  2. const publisher = new Publisher(window, 'addEventListener','removeEventListener');

Publisher’s subscribe method returns function, which can be used later to unsubscribe from the publisher’s event.

  1. const unsubscribe = publisher.subscribe('scroll', (event) => {});
  2. // ...foo code...
  3. unsubscribe();

There is also a method unsubscribeAll for unsubscribing all subscribers from all emitter’s events.

  1. publisher.unsubscribeAll();

API

Publisher

  • Parameters: emitterInstance, addListenerMethodName, removeListenerMethodName
  • Methods: subscribe, unsubscribeAll, eventSubscribersCount, subscribersCount

Parameters

emitterInstance

  • Object, which exposes addListener and removeListener methods
  • Behind the scenes, the emitterInstance is bound to addListener and removeListener methods as this (see Function.prototype.bind)

addListenerMethodName, removeListenerMethodName

  • Names of methods (strings), which are exposed by emitterInstance and, which add and remove event listeners, respectively

Methods

subscribe

  • Required parameters: eventName, eventCallback
  • Optional parameter: subscriberInstance, which will be bound to the eventCallback argument as this (see Function.prototype.bind)

  • Method subscribes eventCallback to eventName, so whenever event occurs the eventCallback is called

  • Returns function for unsubscribing from the event

unsubscribeAll

  • Unsubscribes all publisher’s eventCallbacks from all emitter’s eventNames

eventSubscriberCount

  • Required parameter: eventName
  • Returns number of subscribers’ eventCallbacks subscribed to publisher’s eventName

subscribersCount

  • Returns number of subscriber’s eventCallbacks subscribed to all publisher’s eventNames

Dependencies

Dependencies

  • Package has no production dependencies

DevDependencies

  • Typescript
  • Jasmine, chai, sinon
  • Babel
  • Node (EventEmitter)