1.0.6 • Published 6 years ago
callbacks.js v1.0.6
callbacks.js
原生js观察者模式的的实现,主要用来管理回调函数队列,参考jquery的callbacks模块
Install
$ npm install --save callbacks
Then with a module bundler like rollup or webpack, use as you would anything else:
```javascript
// using ES6 modules
import callbacks from 'callbacks'
// using CommonJS modules
var callbacksJs = require('callbacks');
var callbacks = callbacksJs('unique');
var fn1 = function(){console.log(0)}
callbacks.add(fn1);
callbacks.fire();//--> 0
or
<script type="text/javascript" src="callbacks.js"></script>
<script>
var callbacks = callbacks();
</script>
API
- callbacks('unique') 同一个回调只能添加一次
var callbacks = callbacksJs('unique');
var fn1 = function(){console.log(1)}
callbacks.add(fn1);
callbacks.add(fn1);
callbacks.fire();// 只输出1 没有输出2个1 第二次添加的回调函数没有添加成功
- callbacks('once') 回调函数列表只执行一次,后续再调用fire(),回调不执行
var callbacks = callbacksJs('once');
var fn1 = function(){console.log(1)}
callbacks.add(fn1);
callbacks.add(fn1);
callbacks.fire();// --> 1 1
callbacks.fire()// -- 没有输出
- empty( ) 清空回调函数列表
var callbacks = callbacksJs('unique');
var fn1 = function(){console.log(1)}
callbacks.add(fn1);
callbacks.fire();// --> 1
callbacks.empty();
callbacks.fire();// -- 没有输出
- remove(key) 删除指定的回调函数
var callbacks = callbacksJs();
var fn1 = function(){console.log(1)}
callbacks.add(fn1);
callbacks.add(fn1);
callbacks.fire();// --> 1 1
callbacks.remove(fn1)
callbacks.fire()// -- 没有输出
- add( ) 添加回调函数
var fn1 = function(){console.log(0)}
callbacks.add(fn1);
- fire( ) 执行回调函数列表
var fn1 = function(){console.log(0)}
callbacks.add(fn1);
callbacks.fire() // --> 0