Heim > Web-Frontend > js-Tutorial > Lassen Sie uns über die Methode „sleep()' in Javascript sprechen

Lassen Sie uns über die Methode „sleep()' in Javascript sprechen

coldplay.xixi
Freigeben: 2020-06-18 16:14:28
nach vorne
2448 Leute haben es durchsucht

Lassen Sie uns über die Methode „sleep()' in Javascript sprechen

Viele Programmiersprachen verfügen über sleep(), delay() und andere Methoden, die dazu führen können, dass unser Programm nicht so darauf bedacht ist, den nächsten Vorgang auszuführen, sondern zu verzögern und auf einen zu warten Zeitraum. In der Softwareentwicklung stoßen wir häufig auf Funktionen, die solche Funktionen erfordern, z. B. das Warten auf einige Minuten, um zu prüfen, ob ein Ereignis eintritt. Es gibt eine setTimeout()-Methode in JavaScript, um einen bestimmten Zeitraum für die Ausführung einer Aufgabe festzulegen, aber die Schreibmethode ist sehr hässlich und erfordert eine Rückruffunktion:

setTimeout(function(){ alert("Hello"); }, 3000);
Nach dem Login kopieren

JavaScript Promise API ist eine neue API mit Versprechen, wir Die setTimeout-Funktion kann verbessert werden. Das Folgende besteht darin, setTimeout() in eine sleep()-Funktion zu kapseln, die Promise zurückgibt.

// https://zeit.co/blog/async-and-await
function sleep (time) {
  return new Promise((resolve) => setTimeout(resolve, time));
}

// 用法
sleep(500).then(() => {
    // 这里写sleep之后需要去做的事情
})
Nach dem Login kopieren

Sie werden feststellen, dass diese Schreibweise sehr elegant ist, ähnlich wie Verzögerungs- und Wartefunktionen in anderen Programmiersprachen. Die Promise-API ermöglicht es uns, die Übergabe von Rückruffunktionen zu vermeiden, und wir verwenden in unserer Implementierung auch die Pfeilfunktion in ES6.

Ein Problem, das hier erwähnt werden muss, ist, dass dies sleep() die weitere Ausführung des Programms bei der Ausführung „blockiert“. Es ist nicht synchron. Wenn wir möchten, dass es synchron ausgeführt wird, ohne die Ausführung von nachfolgendem Code zu behindern, können wir das Schlüsselwort async/await verwenden.

(async function() {
  console.log('Do some thing, ' + new Date());
  await sleep(3000);
  console.log('Do other things, ' + new Date());
})();
Nach dem Login kopieren

Ausführungsergebnis:

Do some thing, Mon Feb 23 2015 21:52:11 GMT+0800 (CST)  
Do other things, Mon Feb 23 2015 21:52:14 GMT+0800 (CST)
Nach dem Login kopieren

Sie werden feststellen, dass sleep() dieses Mal die Ausführung des zweiten console nicht behindert.

Aber async/await ist eine Syntax in ES7 und befindet sich noch im experimentellen Stadium. Was soll ich also tun, wenn ich diese async/await -Funktion jetzt nutzen möchte? Sie können Traceur ausprobieren, einen JavaScript-Precompiler von Google, der höhere Versionen von JavaScript in ES5-Code kompilieren kann. Er bietet experimentelle Unterstützung für async/await (Sie müssen –experimental verwenden, um es anzugeben).

Empfohlenes Tutorial: „Javascript-Grundlagen-Tutorial

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Methode „sleep()' in Javascript sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:webhek.com
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 Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage