【发布时间】:2015-04-03 04:37:56
【问题描述】:
Bluebird promisifaction 有点魔力,而request 则是一团糟(它是一个函数,其行为就像一个带有方法的对象)。
具体场景非常简单:我有一个启用了 cookie 的请求实例,通过一个 cookie jar(不使用 request 的全局 cookie 处理程序)。我怎样才能有效地承诺它,以及它支持的所有方法?
理想情况下,我希望能够:
- 致电
request(url)-> 承诺 - 致电
request.getAsync(url)-> 承诺 - 致电
request.postAsync(url, {})-> 承诺
似乎Promise.promisifyAll(request) 无效(因为我收到“未定义 postAsync”)。
【问题讨论】:
-
全面披露,我是作者:http-as-promised.
-
@idbehold 你只需要透露一些事情,如果你要说的话:P
-
这不是小事,请考虑在问题跟踪器上打开一个问题。
-
request(...)和request.get(...)不一样吗?为什么两者都需要? -
@Esailija 我猜是这样,但这主要是为了避免混淆。我想关键是所有的 API 都是承诺的,而且我没有挂起的回调,因为我没有意识到我需要它。严格来说,是的。两者之一是可选的。
标签: javascript promise bluebird