request.getAsync() 只有 returns 1 个参数

request.getAsync() only returns 1 parameters

我正在尝试获取对 return .cert 正文的请求,但使用来自 bluebird 的 .spread 似乎只有 return 1 个参数,而不是应有的两个参数。

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

这将抛出主体未定义的错误。响应 return 整个 json 格式,包括字符串格式的证书,它破坏了结构。

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

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

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

或者,您可以使用 request-promise 软件包为您执行此操作以及其他一些小修复(它在内部使用 bluebird)。