返回介绍

saber-promise v0.1.1

发布于 2023-10-15 20:10:06 字数 2211 浏览 0 评论 0 收藏 0

saber-promise

吾王移动端的Promise/A+实现,遵循1.1规范

Usage

var Resolver = require('saber-promise');

function doSomeThing() {
    var resolver = new Resolver();
    doSync(
        function (result) {
            resolver.fulfill(result);
        },
        function () {
            resolver.reject('connect error');
        }
    );
    return resolver.promise();
}

doSomeThing().then(
    function (result) {
        alert(result);
    },
    function (reason) {
        alert(reason);
    }
);

API

Resolver

有三种状态:等待已完成已拒绝。只能从等待变为已完成或者从等待变为已拒绝,并且状态只能变更一次

创建Resolver实例

var resolver = new Resolver();

Resolver.fulfill( data )

将状态由等待变更为已完成,并将data作为第一个参数触发所有已注册的onFulfilled回调函数

var resolver = new Resolver();
resolver.fulfill(100);

多次调用处于非等待状态的Resolver实例的fulfill方法是无效的

Resolver.reslove( data )

完全等同于 Resolver.fulfill,改个比较通用的名字…(>_<)…

Resolver.reject( reason )

将状态由等待变更为已拒绝,并将reason作为第一个参数触发所有已注册的onRejected回调函数

var resolver = new Resolver();
resolver.reject('找不到对象');

多次调用处于非等待状态的Resolver实例的reject方法是无效的

Resolver.promise()

返回对应的Promise对象

Promise

只能通过Resolver.promise()创建

Promise.then( onFulfilled, onRejected )

注册已完成已拒绝状态的回调

  • onFulfilled 已完成状态回调
  • onRejected 已拒绝状态回调

返回Promise实例

Test

使用Promises/A+规范的Test Suite

npm test

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文