Javascript 节点请求库-承诺重构

Javascript 节点请求库-承诺重构,javascript,node.js,request,Javascript,Node.js,Request,我正在使用节点请求库,该库可以在以下链接中找到 我有许多函数,如下所示 function doRequest() { return new Promise(function(resolve,reject) { request('some-url', function(error,response,body) { if (!error && response.statusCode === 200) {

我正在使用节点请求库,该库可以在以下链接中找到

我有许多函数,如下所示

function doRequest() {

    return new Promise(function(resolve,reject) {

        request('some-url', function(error,response,body) {

                if (!error && response.statusCode === 200) {
                    resolve(body)
                }
        });

    });

}
然后我这样调用这些函数

doRequest()
    .then(function(response){
        console.log(response);
    })
我的问题是,有没有一种不用创建新承诺就可以编写doRequest函数的方法?我觉得它看起来很笨拙,可能是一个反模式?在AngularJS中,你经常看到人们使用

$q.defer() 
进行http调用时,http调用已返回承诺时


任何建议都很好。

如果您希望根据请求方法的结果手动做出承诺,那么这是正确的方法,尽管也需要错误时拒绝调用


然而,该请求库已经使用了Bluebird Promise库的Promisify函数,它可以自动将这些函数包装成返回承诺的函数。

不,这是自己做的正确方法,不是反模式,尽管发现有人已经让Promisify库成为可能并不让我感到惊讶。事实上,在Git repo中已经有了使用Promisify with Request的测试用例。感谢您的回复。为了简洁起见,省略了拒绝位!