Heim > Web-Frontend > js-Tutorial > Wie kann die Rate von API-Anfragen mithilfe von Async/Await und setTimeout effektiv gesteuert werden?

Wie kann die Rate von API-Anfragen mithilfe von Async/Await und setTimeout effektiv gesteuert werden?

Susan Sarandon
Freigeben: 2024-12-27 17:38:11
Original
626 Leute haben es durchsucht

How to Effectively Control the Rate of API Requests Using Async/Await and setTimeout?

Kombination der Async-Funktion Await setTimeout

In diesem Codeausschnitt versucht die asyncGenerator-Funktion, die async-await-Funktionen zum Verarbeiten einer Liste zu nutzen von Dateien aus der Google API. Allerdings wird die while-Schleife zu schnell ausgeführt, was zu übermäßig vielen API-Anfragen pro Sekunde führt. Um dieses Problem zu beheben, versucht der Entwickler, eine Schlaffunktion, listFiles, einzuführen, um die API-Anfragen zu verzögern.

Die Schlaffunktion soll die Ausführung der listFiles-Funktion um 3000 Millisekunden verzögern. Der Code funktioniert jedoch nicht wie vorgesehen. Das Problem liegt in der setTimeout-Funktion, die nativ kein Versprechen zurückgibt, das abgewartet werden kann.

Um dieses Problem zu beheben, ist es notwendig, die setTimeout-Funktion über die Timeout-Hilfsfunktion zu versprechen:

function timeout(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
Nach dem Login kopieren

Zusätzlich kann die Schlaffunktion geändert werden, um die Timeout-Hilfsfunktion zu verwenden:

async function sleep(fn, ...args) {
    await timeout(3000);
    return fn(...args);
}
Nach dem Login kopieren

Alternativ: Um die While-Schleife zu verlangsamen, ohne eine Callback-basierte Sleep-Funktion zu verwenden, kann der folgende Ansatz verwendet werden:

while (goOn) {
  // other code
  var [parents] = await Promise.all([
      listFiles(nextPageToken).then(requestParents),
      timeout(5000)
  ]);
  // other code
}
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass die Berechnung der Eltern mindestens 5 Sekunden dauert, wodurch die Schleife effektiv verlangsamt wird .

Das obige ist der detaillierte Inhalt vonWie kann die Rate von API-Anfragen mithilfe von Async/Await und setTimeout effektiv gesteuert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage