我正在尝试请求返回 .cert 的主体,但使用 bluebird 的 .spread 似乎只返回 1 个参数,而不是应该返回的两个。
request.getAsync( {url: payload.publicKeyUrl, encode:null } )
.spread( function(res, body){
console.log(body);
} );
这将抛出主体未定义的错误。响应返回完整的 json 格式,包括破坏结构的字符串格式的证书。
我使用的是请求 2.67.0 和 Bluebird 3.1.1。 这是证书网址:https://static.gc.apple.com/public-key/gc-prod-2.cer
最佳答案
Bluebird 3.0 将 promisification 更改为在执行 promisification 时默认仅使用第一个参数。
在调用 Promise.promisifyAll(require("request"))
时,您需要传递第二个参数以表明您对所有参数都感兴趣 Promise.promisifyAll(require( "请求"), {multiArgs: true})
或者,您可以使用 request-promise
包为您执行此操作以及一些其他小修复(它在内部使用 bluebird)。
关于node.js - request.getAsync() 只返回 1 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796172/