这可能很可能是一个愚蠢的问题,但是在使用GET请求API数据之后你是如何使用body中的整数来执行一个函数,在这种情况下我想要将第3个数字从var数组1的主体中除去var array 2的主体数:
[4385.1,16.7770791,4385.3,12.74414776,261.2,0.0633,4385.3,23078.11968457,4390,4089.9]
[326.5,15,326.51,0.01504489,10.9,0.0345,326.5,94510.58029456,329.56,314.14]
var request = require('request')
var array1 = request.get('https://api.bitfinex.com/v2/ticker/tBTCUSD',
function (error, response, body) {
console.log(body)
});
var array2 = request.get('https://api.bitfinex.com/v2/ticker/tETHUSD',
function (error, response, body) {
console.log(body)
});
答案 0 :(得分:1)
如果这确实是你的回答:
[4385.1,16.7770791,4385.3,12.74414776,261.2,0.0633,4385.3,23078.11968457,4390,4089.9] [326.5,15,326.51,0.01504489,10.9,0.0345,326.5,94510.58029456,329.56,314.14]
然后,您需要首先使用JSON.parse()
解析它,然后您可以访问数组中的数字。要在第一个请求完成后执行第二个请求,您可以将第二个请求嵌入到第一个请求中,然后您可以轻松地将两组数据放在同一个位置。
请注意,request.get()
是异步的,因此您无法将结果分配给数组,就像您尝试的那样。
request.get('https://api.bitfinex.com/v2/ticker/tBTCUSD', function (err1, response, body1) {
if (err1) {
// error handling here
} else {
let array1 = JSON.parse(body1);
request.get('https://api.bitfinex.com/v2/ticker/tETHUSD', function (err2, response, body2) {
if (err2) {
// error handling here
} else {
let array2 = JSON.parse(body2);
// now you have both arrays here
let answer = array1[2] / array2[2];
// do something with answer here
}
});
}
});
更现代的方法是使用promises并使用request-promise
库而不是request
库,你甚至可以让库为你解析JSON({{ {1}}库也可以)。这会同时运行两个请求,然后request
会告诉我们两个请求何时完成并按顺序给出两个结果:
Promise.all()