Heim  >  Artikel  >  Web-Frontend  >  Wie schließe ich die Methode setTimeout() in Promise ein?

Wie schließe ich die Methode setTimeout() in Promise ein?

WBOY
WBOYnach vorne
2023-08-27 23:29:051221Durchsuche

Die Methode

如何将 setTimeout() 方法包装在 Promise 中?

setTimeOut() führt nach einer bestimmten Anzahl von Millisekunden einen Code oder eine Funktion aus. Manchmal müssen wir ein Versprechen nach einer bestimmten Verzögerung auflösen oder ablehnen. Wir können die Methode setTimeout() mit dem Versprechen verwenden.

In JavaScript ist ein Versprechen ein Objekt, das das Ergebnis einer asynchronen Operation zurückgibt. Hier lernen wir, die Methode setTimeOut() zu verwenden, um ein Versprechen nach einer Verzögerung aufzulösen oder abzulehnen.

Beispiel 1 (Versprechen ohne setTimeOut()-Methode)

Im folgenden Beispiel verwenden wir den Promise()-Konstruktor, um ein neues Promise zu erstellen. Der Promise-Konstruktor akzeptiert eine Rückruffunktion als Parameter und die Rückruffunktion führt die Methode „resolve()“ aus, um das Versprechen aufzulösen. Es demonstriert die grundlegende Verwendung von Promise.

<html>
<body>
   <h2>Using the Promises without setTimeOut() method in JavaScript</h2>
   <div id = "content"> </div> <br />
   <button onclick = "start()"> Resolve Promise </button>
   <script>
      let content = document.getElementById('content');
      
      // function for promise example
      function start() {
         let promise = new Promise(function (resolve, reject) {
            resolve("Promise is resolved!");
         });
         promise.then((value) => {
            content.innerHTML = "The result from resolved promise is " + value;
         });
      } 
   </script>
</body>
</html>

Grammatik

Benutzer können die Methode setTimeOut() mit Promise gemäß der folgenden Syntax verwenden.

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

In der obigen Syntax führen wir die Methode „resolve()“ in der Methode „setTimeOut()“ aus. Es führt die Methode „resolve()“ nach einer „Verzögerung“ von Millisekunden aus.

Beispiel 2 (Versprechen mit asynchroner Funktion und setTimeOut()-Methode)

Im folgenden Beispiel haben wir eine asynchrone Funktion namens „resolvePromise“ erstellt. Wir erstellen das Promise und speichern es in der Variablen „sumPromise“. Anschließend verwenden wir das Schlüsselwort „await“, um die Funktionsausführung anzuhalten, bis das Versprechen aufgelöst ist.

Der Benutzer kann in der Ausgabe beobachten, dass jedes Mal, wenn er die Taste drückt, das Versprechen nach 2000 Millisekunden aufgelöst wird.

<html>
<body>
   <h3>Using Promises with setTimeOut() method and async functions in JavaScript</h3>
   <div id = "content"> </div> <br>
   <button onclick = "resolvePromise()"> Resolve Promise </button>
   <script>
      let content = document.getElementById('content');
      
      // function for promise example
      async function resolvePromise() {
         let sumPromise = new Promise(function (resolve, reject) {
            setTimeout(function () {
               resolve("The sum of all data is 100.");
            }, 3000);
         });
         let result = await sumPromise;
         content.innerHTML = "The resolved promise's result is " + result;
      }
   </script>
</body>
</html>

Beispiel 3 (Versprechen mit then()-Block und setTimeout()-Methode)

Im folgenden Beispiel verwenden wir einen then()-Block, um Promise aufzulösen, anstatt die async/await-Syntax zu verwenden, wie in Beispiel 2 gezeigt. Wir verwenden setTimeOut() auch in einem Promise, wie in Beispiel 2 gezeigt, um das Promise nach einer Verzögerung aufzulösen.

<html>
<body>
   <h2>Using the Promises with setTimeOut() method in JavaScript</h2>
   <div id = "content"></div>
   <br>
   <button onclick = "resolvePromise()"> Resolve Promise </button>
   <script>
      let content = document.getElementById('content');
      
      // function for promise example
      function resolvePromise() {
         let promise = new Promise(function (resolve, reject) {
            setTimeout(function () {
               resolve("This promise is resolved after 2000 milliseconds");
            }, 2000);
         });
         promise.then(function (value) {
            content.innerHTML = "The resolved promise's result is " + value;
         });
      }
   </script>
</body>
</html>

In diesem Tutorial lernen Benutzer, die setTimeOut()-Methode in ein Promise einzuschließen. Darüber hinaus verwenden wir die async/await-Syntax und then()-Blöcke, um Promise aufzulösen. Benutzer können die Ausgabe des obigen Beispiels beobachten, das das Versprechen nach einer bestimmten Millisekunde auflöst.

Das obige ist der detaillierte Inhalt vonWie schließe ich die Methode setTimeout() in Promise ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen