Skip to content

A Simple Events Dispatcher Singleton Class. JavaScript 的一个简单的事件派发单例类 [EventBus]

License

Notifications You must be signed in to change notification settings

biugle/js-xcall

Repository files navigation

js-xcall

一个简单的事件派发单例类

安装

npm install js-xcall -S

引入

const { XCall } = require('js-xcall');
import { XCall } from 'js-xcall';
import XCall from 'js-xcall';

<script src="xcall.min.js"></script>
const { XCall } = $call;
XCall.addCallBack('test', function () {
  console.log('test-browser', arguments);
});

使用

console.log(XCall);

XCall.addCallBack('test', function () {
  console.log('test1', arguments);
});

var test = function (data1, data2) {
  console.log('test2', data1, data2);
};

XCall.addCallBack('test', test);

XCall.dispatch('test', 123, 456);
// test1 [Arguments] { '0': 123, '1': 456 }
// test2 123 456

console.log(
  'hasCallBack-test',
  XCall.hasCallBack('test', test),
  XCall.hasCallBack('test', () => {}),
  XCall.existEvent('test')
); // hasCallBack-test true false true

XCall.getCount(); // 1 (event count)

XCall.removeCallBack('test', test);
XCall.existEvent('test'); // true
XCall.getCount('test'); // 1 (callback count)
XCall.dispatch('test'); // test1 [Arguments] {}
XCall.deleteEvent('test');
XCall.getCount('test'); // 0 (callback count)
XCall.existEvent('test'); // false

XCall.setOnceEvent('test-once', test);
XCall.existEvent('test-once'); // true
XCall.getCount('test-once'); // 1 (callback count)
XCall.getCount(); // 1 (event count)
XCall.dispatch('test-once');
XCall.existEvent('test-once'); // false

XCall.getCount(); // 0  (event count)

XCall.dispatch('test-not'); // Error: 未找到回调事件 test-not 的监听

XCall.addCallBack('hello', test); // 只有一个事件
XCall.existEvent('hello'); // true
XCall.dispatch('hello', 0, 1); // test2 0 1
XCall.removeCallBack('hello', test); // remove 时直接会删除监听,释放内存。
XCall.existEvent('hello'); // false

API 列表

API Docs

其他

About

A Simple Events Dispatcher Singleton Class. JavaScript 的一个简单的事件派发单例类 [EventBus]

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published