我想使用bluebird编写基于promise的异步Web客户端。目前我正在使用request-promise包进行此操作。在我的文件的顶部,我只是把
var Promise = require("bluebird");
var request = require('request-promise');
Promise.promisifyAll(request);
我很高兴。
现在我想添加HTTP缓存。如果没有蓝鸟,我知道这样做的方法是使用request-extensible。
var requestExt = require('request-extensible');
var requestHttpCache = require('request-http-cache');
var httpRequestCache = new requestHttpCache({
max: 1024 * 1024
});
var request = requestExt({
extensions: [httpRequestCache.extension]
});
请求可扩展框架是异步的,但是通过回调函数工作。我想用蓝鸟包裹它,以便我可以将它与promises一起使用。我该怎么做?
答案 0 :(得分:0)
我没有详细介绍request-extensible
,但似乎它返回的对象并不一定与" plain" request
(例如,它没有任何快捷功能.get()/.post()/...
。)
所以要用蓝鸟包裹它,在我看来这已经足够了:
var Promise = require('bluebird');
var requestExt = require('request-extensible');
var request = Promise.promisify(requestExt({ ... }));
// Use like this:
request('URL').then(...).catch(...)
// Or this:
request({ OPTIONS }).then(...).catch(...)