1.0.2 • Published 7 years ago

on-fire v1.0.2

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

简介

一个简单的事件订阅发布系统。

Install

npm install on-fire --save

Api

Api含义入参返回值
on订阅事件{string} event, {Function} handler{number} id,用于取消订阅
off取消事件订阅{string} event, {number} id-
fire触发事件{string} event, [{any} result]-
once一次性事件监听,触发完后自行移除监听{string} event, {Function} handler{number} id,用于取消订阅

Usage

首先,引入:

import Bus from 'on-fire'

或者是

var Bus = require('on-fire')

实例化一个事件总线:

var bus = new Bus()

紧接着,我们监听一个greet事件:

var greetId1 = bus.on('greet', (res) => {
  var greeting = 'Hello, ' + res + '!'

  console.log(greeting)
})

当然,我们可以对同一个事件进行多次订阅:

var greetId2 = bus.on('greet', (res) => {
  var greeting = 'Good morning, ' + res + '!'

  console.log(greeting)
})

然后,我们来触发greet事件:

bus.fire('greet', 'Jack')

// > Hello, Jack!
// > Good morning, Jack!

现在,我们来试着移除监听:

bus.off('greet', greetId2)
bus.fire('greet', 'Jack')

// > Hello, Jack!

我们发现只有一个输出,说明我们已经成功移除了第二个订阅事件!

接下来我们试着实现一次性订阅,也就是当监听函数被触发过一次之后,便自动移除:

var oneTimeId = bus.on('one_time', () => {
  console.log('I will show this message just one time.')
  bus.off('one_time', oneTimeId)
})

bus.fire('one_time')
bus.fire('one_time')

// > I will show this message just one time.

事实上,once便是用来实现以上功能的,以下是等价实现:

bus.once('one_time', () => {
  console.log('I will show this message just one time.')
})

bus.fire('one_time')
bus.fire('one_time')

// > I will show this message just one time.
1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.1.5

7 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago