Heim >Web-Frontend >js-Tutorial >Wie erstelle und verwalte ich Versprechen mit setTimeout in JavaScript?

Wie erstelle und verwalte ich Versprechen mit setTimeout in JavaScript?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 00:27:11711Durchsuche

How to Create and Manage Promises Using setTimeout in JavaScript?

So erstellen Sie ein Versprechen aus setTimeout

Erstellen eines Basisversprechens für setTimeout

Um ein Versprechen zu erstellen, dass async nach dem Auslösen des setTimeout-Rückrufs zurückkehren kann, Wir können die setTimeout-Funktion in einen Promise-Konstruktor einschließen, wie im folgenden Snippet zu sehen ist:

<br>function setTimeoutReturnPromise(delay) {<br> return new Promise((resolve) => {</p>
<pre class="brush:php;toolbar:false">setTimeout(resolve, delay);

});
}

Diese Funktion verwendet eine Verzögerung als Argument und gibt ein Versprechen zurück. Das Versprechen wird nach Ablauf der angegebenen Verzögerung aufgelöst und der Rückruf der setTimeout-Funktion wird ausgeführt.

Versprechen des Versprechens mit Async verwenden

Nun unsere asynchrone Funktion kann die Funktion setTimeoutReturnPromise verwenden, um ein Versprechen zu erstellen, das zurückgegeben werden kann. Dadurch können wir die Methode then() verwenden, um Code auszuführen, nachdem der Rückruf setTimeout aufgerufen wurde:

<br>async(function() {<br> setTimeoutReturnPromise(5000).then( () => {</p>
<pre class="brush:php;toolbar:false">console.log("async called back");

});
});

Aktualisierung für ES2015 und darüber hinaus

Seit der Einführung von ES2015 und modernem JavaScript sind Versprechen zu integrierten Funktionen geworden. Die Syntax wurde vereinfacht, wie unten gezeigt:

<br>function later(delay) {<br> return new Promise((resolve) => {</p>
<pre class="brush:php;toolbar:false">setTimeout(resolve, delay);

});
}

Pfeilfunktionen verwenden und optionale Auflösungswertargumente kann der Code weiter komprimiert werden:

<br>const later = (delay, value) => new Promise(resolve => setTimeout(resolve, delay, value));<br>

Cancellable Promises (optional)

Wenn Sie die Zeitüberschreitung abbrechen möchten, können Sie ein Objekt mit einem Versprechen und einem Abbruch zurückgeben Methode:

<br>const later = (delay, value) => {<br> Let Timer = 0; zurückkehren {<br><br></p>};<pre class="brush:php;toolbar:false">reject = _reject;
timer = setTimeout(resolve, delay, value);
};


Mit diesem Ansatz können Sie das Timeout abbrechen und das Versprechen mithilfe der Methode cancel() ablehnen.
get promise() { return promise; },
cancel() {
  if (timer) {
    clearTimeout(timer);
    timer = 0;
    reject();
    reject = null;
  }
}

Das obige ist der detaillierte Inhalt vonWie erstelle und verwalte ich Versprechen mit setTimeout in JavaScript?. 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