[英]Schedule an API call in ReactJS
我有一個基於反應的Web應用程序,它從Jenkins API檢索數據。 在componentDidMount()函數期間,我正在調用第一個啟動API調用流程的API。 然后,我將使用API中的數據呈現組件。
Jenkins服務器每天早上7點開始構建每個項目。 因此,我想在每天晚上8點左右從React調用這些API。
我們是否可以安排React調用這些API,並在一天的特定時間內獲取前面提到的更新數據? 或刷新瀏覽器等導致新的API數據? 我是React的新手,所以感謝您提出的建議。
您在componentDidMount()
正確使用了API調用。 您可以在mount上使用setTimeout()
等待到20:00,然后每24小時使用setInterval()
再次觸發該事件。
所以喜歡:
componentDidMount() {
const currentTime = new Date().getTime(); //current unix timestamp
const execTime = new Date().setHours(20,0,0,0); //API call time = today at 20:00
let timeLeft;
if(currentTime < execTime) {
//it's currently earlier than 20:00
timeLeft = execTime - currTime;
} else {
//it's currently later than 20:00, schedule for tomorrow at 20:00
timeLeft = execTime + 86400000 - currentTime
}
setTimeout(function() {
setInterval(function() {
//your code
}, 86400000); //repeat every 24h
}, timeLeft); //wait until 20:00 as calculated above
}
換句話說,它將:
20:00
之間的時差。 setTimeout()
等到20:00
。 setInterval()
內的代碼。 無論您何時啟動React應用程序,這都將有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.