如何正确地将request转换为Promise对象?

11 浏览
0 Comments

如何正确地将request转换为Promise对象?

Bluebird的promisification是一种小魔法,而request则相当混乱(它是一个表现为带有方法的对象的函数)。

具体情景非常简单:我有一个启用了cookies的request实例,通过一个cookie jar来实现(不使用request的全局cookie处理程序)。如何有效地将其promisify,并支持它的所有方法?

理想情况下,我想要能够:

  • 调用request(url) -> Promise
  • 调用request.getAsync(url) -> Promise
  • 调用request.postAsync(url, {}) -> Promise

看起来Promise.promisifyAll(request)是无效的(因为我得到了"postAsync未定义"的错误)。

0