相关疑难解决方法(0)

承诺不仅仅是回调吗?

我已经开发了几年的JavaScript,我根本不理解有关承诺的大惊小怪.

似乎我所做的只是改变:

api(function(result){
    api2(function(result2){
        api3(function(result3){
             // do work
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以使用像async这样的库,例如:

api().then(function(result){
     api2().then(function(result2){
          api3().then(function(result3){
               // do work
          });
     });
});
Run Code Online (Sandbox Code Playgroud)

哪个代码更多,可读性更低.我没有在这里获得任何东西,它也不会突然神奇地"平坦".更不用说必须将事物转换为承诺.

那么,这里的承诺有什么大惊小怪?

javascript callback promise q bluebird

402
推荐指数
7
解决办法
9万
查看次数

有希望的听众

我是一个巨大的承诺链,但是我意识到其中一个函数返回一个具有侦听器并对回调做出反应的对象,例如

object.on('data', function(err, data) {
     //do something
});

object.on('exit', function(err, data) {
     //do something
});
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法使用 Promise 来解决这个问题并将它们变成 thenables。除了重写我的整个 Promise 链以使用回调之外,还有没有其他选择?

javascript listeners node.js promise

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

标签 统计

javascript ×2

promise ×2

bluebird ×1

callback ×1

listeners ×1

node.js ×1

q ×1