Всем привет!
Создаю проект с использованием Next.js. В приложении используется API. Но количество запросов к API ограничено. Поэтому столкнулся с такой проблемой: как можно сделать так, чтобы API запрос отправлялся не при перезагрузке страницы, а через какой-то промежуток времени(например каждые 5 минут)?
Вот файл, в котором отправляю запрос API и потом передаю данные на страницу:
import { cryptoList, cryptoName } from './Data'
import axios from 'axios'
export async function fetchCryptoRating(setCryptoServerData, setIsCryptoDataLoading, isMobile) {
const tables = []
var count = 0
cryptoList.forEach(async (crypto) => {
const options = {
method: 'GET',
url: 'https://binance43.p.rapidapi.com/ticker/24hr',
params: {symbol: crypto + 'USDT'},
headers: {
'X-RapidAPI-Host': 'binance43.p.rapidapi.com',
'X-RapidAPI-Key': 'ce5aac41edmshb2c7534b52e1627p11f39bjsn7fdeff447107'
}
};
const result = await axios.request(options)
const itemData = isMobile ? [
cryptoName[count],
`${parseInt(result.data.lastPrice)} $`,
`${parseFloat(result.data.priceChangePercent).toFixed(2)} %`
] : [
cryptoName[count],
crypto,
`${parseInt(result.data.lastPrice)} $`,
`${parseInt(result.data.volume)} $`,
`${parseFloat(result.data.priceChangePercent).toFixed(2)} %`
]
tables.push(itemData)
count ++
})
setCryptoServerData(tables)
setIsCryptoDataLoading(false)
}
Предполагаю, что нужно сохранять данные в базу данных. Но все равно остается вопрос, как отслеживать время, через которое нужно отправлять запрос