使用具有 A+ 规格的 Superagent?
Use Superagent with A+ spec?
我如何使用 Superagent but with the Promises A+ spec? I'm working on a project that uses both Superagent and Bluebird,我想使用 .then()
语法,但如果不编写我自己的包装代码,我想不出一个简单的方法来做到这一点。
I see this project 但不想在每次调用时都使用 .promise()。
是否有任何其他现有模块使它看起来更像 Bluebird?
更像是 -
var request = ('superagent-wrapperModule');
request.get(url).then(..).catch(...)
[编辑] 实际上我已经制作了一个模块来按照我喜欢的方式执行此操作(类似于上面的示例)。
如果有人感兴趣 - github link and npm link
就像@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)
我如何使用 Superagent but with the Promises A+ spec? I'm working on a project that uses both Superagent and Bluebird,我想使用 .then()
语法,但如果不编写我自己的包装代码,我想不出一个简单的方法来做到这一点。
I see this project 但不想在每次调用时都使用 .promise()。
是否有任何其他现有模块使它看起来更像 Bluebird?
更像是 -
var request = ('superagent-wrapperModule');
request.get(url).then(..).catch(...)
[编辑] 实际上我已经制作了一个模块来按照我喜欢的方式执行此操作(类似于上面的示例)。
如果有人感兴趣 - github link and npm link
就像@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)