Heim  >  Artikel  >  Web-Frontend  >  Wie führt man Verzögerungen im Puppeteer-Code ein?

Wie führt man Verzögerungen im Puppeteer-Code ein?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 01:39:02327Durchsuche

How to Introduce Delays in Puppeteer Code?

Verzögerungen im Puppeteer-Code erzeugen

In Puppeteer kann es notwendig sein, absichtliche Verzögerungen einzuführen, bevor nachfolgende Codezeilen ausgeführt werden. Um dieses Problem zu lösen, können Sie sich für eine der folgenden Lösungen entscheiden:

Verwendung einer Promise-Funktion

Für flexible und unabhängige Verzögerungen sollten Sie die Verwendung einer einfachen Promise-Funktion in Betracht ziehen:

function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}

Um die Verzögerung zu implementieren, nehmen Sie die folgenden Änderungen vor:

console.log('before waiting');
await delay(4000);
console.log('after waiting');

Verwenden Die integrierte Funktion von Puppeteer

Wenn Sie lieber in der Puppeteer-Umgebung bleiben möchten, nutzen Sie die integrierte Funktion „waitForTimeout“:

await page.waitForTimeout(4000)

Diese Funktion unterbricht die Codeausführung effektiv für die angegebene Anzahl von Millisekunden.

Mit Evaluated Versprechen

Wenn Sie page.evaluate immer noch bevorzugen, können Sie Ihren aktuellen Code ändern, um das Versprechen nach der gewünschten Verzögerung aufzulösen:

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});

Dieser Ansatz ist jedoch möglicherweise nicht möglich aufgrund der Gefahr einer Überkomplikation genauso praktisch sein wie die ersten beiden Methoden.

Das obige ist der detaillierte Inhalt vonWie führt man Verzögerungen im Puppeteer-Code ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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