我正在尝试运行如下所示的脚本:
const response = await request.getAsync(channelAPI);
let responseData = JSON.parse(response[0].body);
然而,当我在一台机器上运行它时,它可以工作,而另一台只是将响应作为对象返回,而我不需要[0]。
发生了什么事?我之前遇到过同样的问题,两台机器都在查看相同的package.json,那么问题是什么?
答案 0 :(得分:1)
假设您正在使用Bluebird,我想问题是:
http://bluebirdjs.com/docs/new-in-bluebird-3.html
默认情况下,promisification(
Promise.promisify
和Promise.promisifyAll
)方法和Promise.fromCallback
默认忽略传递给回调适配器的多个参数,而只使用第一个参数来解析promise。 2.x中的行为是构造一个参数数组,并在将多个参数传递给回调适配器时用它解析promise。
因此,您似乎在两个环境中拥有不同的Bluebird主要版本。