使用Superagent和A +规格?

时间:2015-03-09 18:24:27

标签: javascript node.js promise bluebird superagent

我如何使用Superagent但使用Promises A +规范?我正在开发一个同时使用Superagent和Bluebird的项目,我想使用.then()语法,但如果不编写自己的包装代码,就无法找到一种简单的方法。

I see this project但不想在每次通话时都使用.promise()。

还有其他现有的模块让它看起来更像Bluebird吗?

更像是 -

var request = ('superagent-wrapperModule');

request.get(url).then(..).catch(...) 

[编辑]我实际上已经按照我喜欢的方式制作了一个模块(类似于上面的例子)。

如果有人有兴趣 - github linknpm link

1 个答案:

答案 0 :(得分:3)

与@idbehold和@victorkohl发表评论时,superagent需要致电end才能知道正在发送请求。为此,superagent-bluebird-promise适配器选择使用.promise()方法,该方法也采用选项对象。

如果你不喜欢它并且不需要选项,我建议你只需在请求对象上定义自己的then方法:

var request = require('superagent-bluebird-promise');
request.Request.prototype.then = function(s, e) {
    return this.promise().then(s, e);
};

以便您可以使用

request.get(url).then(…).catch(…);

(我也开了a Github issue