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

标签 node.js promise bluebird node-request

我正在尝试请求返回 .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/

相关文章:

javascript - 如何使用像 apache 或 iis 这样的 Node js

javascript - 如何解析 jQuery 中的 promise 链?

javascript - Promise/bluebird.js 中的错误处理

javascript - Syncano Codebox - 调用 API - 解析 JSON - 获取引用 - 保存新对象

javascript - 如何检测 Node.js 中损坏的图像文件?

node.js - 确保在 transformFunction 内解决 promise

javascript - 如何优化循环以插入数据库?

javascript - 错误 : timeout of 2000ms exceeded. 带有 promise 的单元测试

node.js - 尝试在 NodeJS 上的异步 Promise 链上使用 undefined variable 时,控制台或日志中没有 uncaughtException

javascript - 生成带有 promise 的数据集