Если я правильно понял вопрос, я бы добавил переменную в вашу функцию FetchApi, чтобы она могла запрашивать либо ваш начальный URL-адрес API, либо URL-адрес для следующей страницы:
FetchAPI(requestURL){
// Fetch function here
}
Идея состоит в том, что эта функция может затем вызывать себя итеративно, с URL-адресом следующей страницы результатов, передаваемой в качестве параметра для каждого вызова, до тех пор, пока ответ не покажет все данные, которые были получены.
Таким образом, ваш начальный вызов будет FetchAPI ('https://MYURLHERE? From = FROMDATE & to = TODATE ').
Затем можно добавить строку для повторного вызова этой функции, если достигнут предел скорости. Например:
FetchAPI(requestURL){
fetch(requestURL)
.then(response => {
if(response.dataLimit == true){ // Or however this is expressed
// Concat new data with any already retrieved
this.FetchAPI(nextPageUrl) // Get the URL of the next page and call FetchAPI again with this e.g https://MYURLHERE?from=FROMDATE&limit=2000&to=TODATE
} else {
// Otherwise stop and do something else now that you have a complete set of data
}
})
}
Стоит сказать, что это непроверенный код, но, надеюсь, достаточно для прояснения принципа.
Также, если API имеет ограничение скорости запросов, например 1 секунду, вы можете добавить задержку, прежде чем функция снова вызовет себя, хотя, очевидно, это повлияет на общее время получения всех данных.