相关疑难解决方法(0)

既然我们有ES6承诺,还有理由使用Q或BlueBird等承诺库吗?

在Node.js添加了对promises的原生支持之后,还有理由使用像Q或BlueBird这样的库吗?

例如,如果您正在开始一个新项目并让我们在这个项目中假设您没有任何使用这些库的依赖项,那么我们是否可以说实际上没有理由使用这些库?

javascript node.js promise q bluebird

218
推荐指数
1
解决办法
5万
查看次数

基本的Javascript承诺实现尝试

为了更好地理解promises如何在Javascript中工作,我决定尝试自己编写代码基本实现.

基本上我想实现Promises Object(我在代码中称之为Aaa),它将函数作为参数.此函数可以调用resolve对promise的解析,或拒绝reject它.基本实现和用法如下.根据承诺规范,不确定第二个参数是否可接受,但这是我到目前为止所得到的.

Aaa=function(f,pause) { 

    console.log("ggg");

    var t=this;
    this.f=f;
    this.thens=[];

    this.resolve=function(g) {

        for(var i=0;i<t.thens.length;i++)
        {
            // try/catch to be used later for dealing with exceptions

            try
            {
                t.thens[i].f(g);
                t.thens[i].resolve();
            }   
            catch(ex)
            {}

        }
    };  

    // to be implemented later
    this.reject=function(g) {};

    this.then=function(resolve,reject) {

        // i'm passing true for pause argument as we dont need to execute promise code just yet
        var nextPromise=new Aaa(resolve,true);

        this.thens.push(nextPromise);

        return nextPromise;
    }


    if(!pause)
        this.f(this.resolve,this.reject); 

}


var aaa=new Aaa(function(resolve,reject) {

    console.log("aaa");

    setTimeout(function() …
Run Code Online (Sandbox Code Playgroud)

javascript promise

58
推荐指数
2
解决办法
1万
查看次数

理解Promises/A +规范

承诺/ A +规范是最小规范之一.因此,实施它是理解它的最佳方式.Forbes Lindesay的以下答案向我们介绍了实现Promises/A +规范,Basic Javascript promise实现尝试的过程.但是,当我测试它时,结果并不令人满意:

? 109 tests passed
? 769 tests failed
Run Code Online (Sandbox Code Playgroud)

很明显,Promises/A +规范并不像看起来那么容易实现.您将如何实现规范并向新手解释您的代码?Forbes Lindesay在解释他的代码方面表现非常出色,但遗憾的是他的实现不正确.

javascript promise

1
推荐指数
1
解决办法
1837
查看次数

标签 统计

javascript ×3

promise ×3

bluebird ×1

node.js ×1

q ×1