0.0.2 • Published 7 years ago

tiny-defer-js v0.0.2

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

tiny-deferred

一个轻量级 JavaScript 异步库, 从此拒绝回调嵌套。

下载

npm install tiny-defer-js --save

引入

  • 浏览器端
  1. 标签引入

    <script src="./node_modules/tiny-defer-js/index.js"></script>
    
    var Deferred = window.Deferred;
  2. 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('任务全部完成');
    });