gpt4 book ai didi

javascript - 在 native 的固定时间段内重新加载 setInterval 中的 api 数据

转载 作者:行者123 更新时间:2023-11-30 19:24:12 24 4
gpt4 key购买 nike

我正在开发一个 React Native 应用程序,我在其中从 API 获取数据。现在每天下午6点到7点,我需要每隔3秒重新加载一次API数据,因为这段时间数据一直在变化。我不知道该怎么做。这是我现在拥有的代码:

async componentDidMount() {
await fetch('https://api', {
method: 'GET',
})
.then((response) => response.json())
.then((response) => {
this.setState({ tableData1: response.magnum })
this.setState({ tableData2: response.special })
this.setState({ tableData3: response.consolation })
this.setState({ date: response.date })
this.setState({ draw: response.draw })
})
}

componentWillMount() {
const { navigation } = this.props;
this.focusListener = navigation.addListener("didFocus", () => {
var today = new Date()
var time = today.getHours()
console.log(today.getMinutes())
var weekDay = today.getDay()

if ((time >= 18) && (time <= 19 )) {
// I guess I need to do something here...
}
});

如果在 componentWillMount 中做某事每 3 秒一次又一次地刷新数据,我会感到困惑。任何帮助将不胜感激。

最佳答案

我可能会做这样的事情:

componentWillMount() {
const { navigation } = this.props;
this.focusListener = navigation.addListener("didFocus", () => {
var today = new Date()
var time = today.getHours()
console.log(today.getMinutes())
var weekDay = today.getDay()

if ((time >= 18) && (time < 19 )) {
var setIntervalId = setInterval(() {
// make api call;
}, 300);

var min = 60 - today.getMinutes();
var mili = min * 60000;

setTimeout(() => clearInterval(setIntervalId), mili);
}
});

假设您在 6:21 开始进行 API 调用,因此您希望在剩余的 39 分钟内继续进行 API 调用,这是 min 变量,因为 setTimeout 函数接受持续时间值毫秒,所以我只是将它转换为毫秒。

关于javascript - 在 native 的固定时间段内重新加载 setInterval 中的 api 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57099918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com