1.1.1 • Published 6 years ago

observable-emit v1.1.1

Weekly downloads
18
License
BSD-3-Clause
Repository
github
Last release
6 years ago

观察者模式

定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知。包含订阅,分发,取消订阅。

Build Status codecov NPM downloads JS gzip size Npm package GitHub stars GitHub license

GetCode

git clone https://github.com/sakitam-fdd/observable-emit.git
npm install
npm run dev
npm run build
npm run karma.test
npm run karma.cover

Use

CDN

https://unpkg.com/observable-emit@1.1.1/dist/Observable.min.js
https://unpkg.com/observable-emit@1.1.1/dist/Observable.js

NPM

npm install observable-emit --save
import Observable from 'observable-emit'

Example

  var emiter = new Observable()
  emiter.on('event1', function(event, data) {
    console.log(event, data)
  })
  // 触发一次取消订阅
  emiter.once('event1', function(event, data) {
    console.log(event, data)
  })
  emiter.on('event2', function(event, data) {
    console.log(event, data)
  })
  
  emiter.dispatch('event1', 'one')
  emiter.dispatchSync('event2', 'two')
// one

// 取消订阅, 不传时默认取消所有
emiter.un('event1')

Methods

on(eventName, callback, context)

addEventListener(eventName, callback, context) -- alias

订阅事件

Parameters:
keytypedesc
eventNamestring or Object事件名称, 可以使用空格分开订阅多个事件,也可以使用对象例如dom对象
callbackfunction回调函数
contextfunction上下文

once(eventName, callback, context)

订阅事件(仅触发一次即取消订阅)

Parameters:
keytypedesc
eventNamestring or Object事件名称, 可以使用空格分开订阅多个事件,也可以使用对象例如dom对象
callbackfunction回调函数
contextfunction上下文

un(eventName, callback, context)

removeEventListener(eventName, callback, context) -- alias

取消订阅,无参数时默认取消所有事件订阅

Parameters:
keytypedesc
eventNamestring or Object事件名称, 可以使用空格分开订阅多个事件,也可以使用对象例如dom对象
callbackfunction订阅函数
contextfunction上下文

dispatch(eventName, ...)

触发事件,实时(参数不定)

Parameters:
keytypedesc
eventNamestring事件名称

dispatchSync(eventName, ...)

触发事件,异步(参数不定)

Parameters:
keytypedesc
eventNamestring事件名称