ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で setTimeout を使用して Promise を作成および管理する方法

JavaScript で setTimeout を使用して Promise を作成および管理する方法

Linda Hamilton
リリース: 2024-12-06 00:27:11
オリジナル
737 人が閲覧しました

How to Create and Manage Promises Using setTimeout in JavaScript?

setTimeout から Promise を作成する方法

setTimeout の基本 Promise を作成する

async が実行できる Promise を作成するにはsetTimeout コールバックが起動した後に return する場合、以下のスニペットに示すように、setTimeout 関数を Promise コンストラクター内にラップできます。

<br>function setTimeoutReturnPromise(lay) {<br> return new Promise ((解決) => {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">setTimeout(resolve, delay);
ログイン後にコピー
ログイン後にコピー

});
}

この関数は引数として遅延を受け取り、Promise を返します。 Promise は指定された遅延が経過した後に解決され、setTimeout 関数のコールバックが実行されます。

async で Promise を使用する

次に、async 関数を見てみましょう。 setTimeoutReturnPromise 関数を使用して、返すことができる Promise を作成できます。これにより、setTimeout コールバックが呼び出された後に then() メソッドを使用してコードを実行できるようになります:

<br>async(function() {<br> setTimeoutReturnPromise(5000).then( () => {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">console.log("async called back");
ログイン後にコピー

});
});

ES2015 以降の更新

ES2015 と最新の JavaScript の導入以来、Promise は組み込み機能になります。構文は以下に示すように簡略化されています。

<br>function Later(lay) {<br> return new Promise((resolve) => {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">setTimeout(resolve, delay);
ログイン後にコピー
ログイン後にコピー

});
}

アロー関数とオプションの解決値引数を使用すると、コードをさらに圧縮できます。

<br>const Later = (遅延, 値) => new Promise(resolve => setTimeout(resolve, late, value));<br>

キャンセル可能な約束 (オプション)

タイムアウトをキャンセルしたい場合は、promise と cancel を含むオブジェクトを返すことができます。メソッド:

<br>const Later = (遅延, 値) => {<br> let timer = 0;<br> let respect = null;<br> const Promise = new Promise((resolve, _reject) => {</p><pre class="brush:php;toolbar:false">reject = _reject;
timer = setTimeout(resolve, delay, value);
ログイン後にコピー

});
戻る{

get promise() { return promise; },
cancel() {
  if (timer) {
    clearTimeout(timer);
    timer = 0;
    reject();
    reject = null;
  }
}
ログイン後にコピー

};
};

このアプローチでは、cancel() メソッドを使用してタイムアウトをキャンセルし、Promise を拒否できます。

以上がJavaScript で setTimeout を使用して Promise を作成および管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
前の記事:jQuery は特殊文字を含むキー押下イベントを確実にシミュレートできますか? 次の記事:JavaScript でブラウザ ウィンドウのサイズ変更イベントを検出するにはどうすればよいですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート