最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

带节点提取的动态请求

IT培训 admin 4浏览 0评论

带节点提取的动态请求

我需要从API中获取一个快速实现的值。问题是我写的代码总是给我带来相同的价值。我试过两种方法:

var fetch = require("node-fetch");
for(let i=0; i<5; i++){
setTimeout(function(){}, 3000);
fetch('')
.then(res => res.json())
.then(data => {console.log(data.price)});
}

并以同步方式:

var fetch = require("node-fetch");
var request = async () => {
var response = await fetch('? 
symbol=ETHBTC');
var json = await response.json();
console.log(json.price);
}
for(let i=0; i<5; i++) {
setTimeout(function(){request();}, 3000);
}

但我总是得到这样的东西:

0.03244206
0.03244206
0.03244206
0.03244206
0.03244206

有什么建议吗?

回答如下:

您需要了解setTimeout不会停止循环的执行...循环将所有超时设置为一个接一个地执行

const fetch = require("node-fetch");
let i = 0, times = 5;
const interval = setInterval(() => {
    if (++i < times) clearInterval(interval);
    fetch('https://api.binance/api/v3/avgPricesymbol=ETHBTC')
        .then(res => res.json())
        .then(data => {console.log(data.price)});
},3000);

使用async / await:

const fetch = require("node-fetch");
let i = 0, times = 5;
const interval = setInterval(async () => {
    if (++i < times) clearInterval(interval);
    const response = await fetch("https://api.binance/api/v3/avgPricesymbol=ETHBTC");
    const json = await response.json();
    console.log(json);
},3000);

带节点提取的动态请求

我需要从API中获取一个快速实现的值。问题是我写的代码总是给我带来相同的价值。我试过两种方法:

var fetch = require("node-fetch");
for(let i=0; i<5; i++){
setTimeout(function(){}, 3000);
fetch('')
.then(res => res.json())
.then(data => {console.log(data.price)});
}

并以同步方式:

var fetch = require("node-fetch");
var request = async () => {
var response = await fetch('? 
symbol=ETHBTC');
var json = await response.json();
console.log(json.price);
}
for(let i=0; i<5; i++) {
setTimeout(function(){request();}, 3000);
}

但我总是得到这样的东西:

0.03244206
0.03244206
0.03244206
0.03244206
0.03244206

有什么建议吗?

回答如下:

您需要了解setTimeout不会停止循环的执行...循环将所有超时设置为一个接一个地执行

const fetch = require("node-fetch");
let i = 0, times = 5;
const interval = setInterval(() => {
    if (++i < times) clearInterval(interval);
    fetch('https://api.binance/api/v3/avgPricesymbol=ETHBTC')
        .then(res => res.json())
        .then(data => {console.log(data.price)});
},3000);

使用async / await:

const fetch = require("node-fetch");
let i = 0, times = 5;
const interval = setInterval(async () => {
    if (++i < times) clearInterval(interval);
    const response = await fetch("https://api.binance/api/v3/avgPricesymbol=ETHBTC");
    const json = await response.json();
    console.log(json);
},3000);

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论