0.0.2 • Published 7 years ago
tiny-defer-js v0.0.2
tiny-deferred
一个轻量级 JavaScript 异步库, 从此拒绝回调嵌套。
下载
npm install tiny-defer-js --save
引入
- 浏览器端
标签引入
<script src="./node_modules/tiny-defer-js/index.js"></script> var Deferred = window.Deferred;
es6
import Deferred from 'tiny-defer-js';
- node 端
var Deferred = require('tiny-defer-js');
API
var deferred = new Deferred();
deferred.state;
返回对象当前状态,resolved, rejected, pending.
deferred.then(onResolve, onReject);
对象成功或者失败状态所执行的函数
deferred.resolve();
将对象转为成功状态
deferred.reject();
将对象转为失败状态
deferred.done(fn);
下一个状态为成功状态时执行的函数
deferred.fail(fn);
下一个状态为失败状态的执行的函数
deferred.always(fn);
无论下一个状态是成功状态还是失败状态,都执行的函数
Deferred.all();
接受多个Deferred对象实例,返回一个deferred对象实例,当全部结束时执行下一个成功状态。
使用
// 引入主文件并新建 Deferred 实例
var Deferred = require('tiny-defer-js');
var deferred = new Deferred();
// 这里我们使用 log 函数代表异步操作,通过传入不同的参数代表延迟时间的不同。
var log = function (delayTime) {
var time = delayTime || 2000;
setTimeout(function () {
console.log('something');
deferred.resolve();
}, time);
return deferred;
}
// 链式顺序执行
log(1000)
.then(log)
.then(log);
// 同步执行,全部完成执行回调
Deferred.all(log(1000), log(2000))
.then(function () {
console.log('任务全部完成');
});