我如何使用Superagent但使用Promises A +规范?我正在开发一个同时使用Superagent和Bluebird的项目,我想使用.then()
语法,但如果不编写自己的包装代码,就无法找到一种简单的方法。
I see this project但不想在每次通话时都使用.promise()。
还有其他现有的模块让它看起来更像Bluebird吗?
更像是 -
var request = ('superagent-wrapperModule');
request.get(url).then(..).catch(...)
[编辑]我实际上已经按照我喜欢的方式制作了一个模块(类似于上面的例子)。
如果有人有兴趣 - github link和npm link
答案 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)