【发布时间】:2020-07-10 03:03:01
【问题描述】:
我是 nodejs 的新手。我开发了一个函数,它以一秒的间隔调用一个休息 API。
理论上我应该每秒都有一个新结果,但控制台只显示一个结果。我不知道为什么。
const https = require('https');
const url = 'https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT';
const promise = new Promise((resolve, reject) => {
let price = '';
const interval = setInterval(() => {
https.get(url, (response) => {
let data = '';
// A new chunk of data has been received.
response.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received, print out the result.
response.on('end', () => {
// returns formatted price
price = JSON.parse(data).price;
price = (price * 100) / 100;
resolve(price)
});
});
}, 1000);
});
promise.then((price) => {
console.log('Current price ' + price);
});
【问题讨论】:
-
承诺只解决一次。它们是一次性设备。所以,
.then()在任何给定的承诺上只会被调用一次。如果您想要重复的结果(每次调用间隔计时器一次),那么您将使用事件或回调,而不是承诺。
标签: node.js api promise setinterval binance