request.getAsync()只返回1个参数

Kev*_*oet 2 node.js promise bluebird node-request

我正在尝试获取返回.cert主体的请求,但是使用bluebird的.spread似乎只返回1个参数,而不是它应该返回两个参数.

request.getAsync( {url: payload.publicKeyUrl, encode:null } )
    .spread( function(res, body){
        console.log(body);
    } );
Run Code Online (Sandbox Code Playgroud)

这将抛出一个未定义主体的错误.响应返回ENTIRE json格式,包括与结构混淆的字符串格式的证书.

我正在使用请求2.67.0和bluebird 3.1.1.这是证书网址:https://static.gc.apple.com/public-key/gc-prod-2.cer

Ben*_*aum 6

Bluebird 3.0将promisification更改为默认为仅在执行promisification时使用第一个参数.

在您的通话中,Promise.promisifyAll(require("request"))您需要传递第二个参数,以表明您对所有参数感兴趣Promise.promisifyAll(require("request"), {multiArgs: true})

或者,您可以使用request-promise为您执行此操作的程序包以及其他一些小修复程序(它在内部使用蓝鸟).