@lifuzhao100/eventbus

## 使用 1. 安装 ```shell # use npm npm install @lifuzhao100/eventbus

Usage no npm install needed!

<script type="module">
  import lifuzhao100Eventbus from 'https://cdn.skypack.dev/@lifuzhao100/eventbus';
</script>

README

eventbus

使用

  1. 安装
# use npm 
npm install @lifuzhao100/eventbus

# use yarn 
yarn add @lifuzhao100/eventbus
  1. 使用
import EventBus from '@lifuzhao100/eventbus'

function getErrorHandler(){
  // 返回自定义errorHandler
  return e => console.error(e)
}

const eventBus = new EventBus(getErrorHandler)

// 监听事件
eventBus.$on('event-name', message => {
  console.log(`got message:`, message)
})
// 监听一次事件
eventBus.$once('event-name2', message => {
  console.log(`listen once:`, message)
})

// 触发事件
eventBus.$emit('event-name', 'are u ok?')
eventBus.$emit('event-name2', 'are u ok?')

eventBus.$off('event-name')

api

  • $on 别名on
function $on(event: string | Array<string>, fn: Function) : EventBus;

注册事件监听,event为Array时注册多个相同回调的事件监听

  • $off 别名off
function $off(event: string | Array<string>, fn: Function | undefined) : EventBus;

为 !fn === true时清空当前事件监听

  • $once 别名once
function $once(event: string | Array<string>, fn: Function | undefined) : EventBus;

执行第一次事件回调前会将当前回调移除(fn为Function时)或者清空(!fn === false时)

  • $emit 别名emit
function $emit(event: string, ...rest) : EventBus;

触发事件监听,将注册的同名事件的所有回调执行,参数为rest。(背后执行的是fn.apply(eventBus, rest))