Requestjs有两种不同的语法:一种作为数组,一种作为对象

时间:2017-10-18 00:54:45

标签: node.js request requestjs

我正在尝试运行如下所示的脚本:

const response =  await request.getAsync(channelAPI);

  let responseData = JSON.parse(response[0].body);

然而,当我在一台机器上运行它时,它可以工作,而另一台只是将响应作为对象返回,而我不需要[0]。

发生了什么事?我之前遇到过同样的问题,两台机器都在查看相同的package.json,那么问题是什么?

1 个答案:

答案 0 :(得分:1)

假设您正在使用Bluebird,我想问题是:

http://bluebirdjs.com/docs/new-in-bluebird-3.html

  

默认情况下,promisification(Promise.promisifyPromise.promisifyAll)方法和Promise.fromCallback默认忽略传递给回调适配器的多个参数,而只使用第一个参数来解析promise。 2.x中的行为是构造一个参数数组,并在将多个参数传递给回调适配器时用它解析promise。

因此,您似乎在两个环境中拥有不同的Bluebird主要版本。