ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で setTimeout を使用して Promise を作成および管理する方法
async が実行できる Promise を作成するにはsetTimeout コールバックが起動した後に return する場合、以下のスニペットに示すように、setTimeout 関数を Promise コンストラクター内にラップできます。
<br>function setTimeoutReturnPromise(lay) {<br> return new Promise ((解決) => {</p> <pre class="brush:php;toolbar:false">setTimeout(resolve, delay);
});
}
この関数は引数として遅延を受け取り、Promise を返します。 Promise は指定された遅延が経過した後に解決され、setTimeout 関数のコールバックが実行されます。
次に、async 関数を見てみましょう。 setTimeoutReturnPromise 関数を使用して、返すことができる Promise を作成できます。これにより、setTimeout コールバックが呼び出された後に then() メソッドを使用してコードを実行できるようになります:
<br>async(function() {<br> setTimeoutReturnPromise(5000).then( () => {</p> <pre class="brush:php;toolbar:false">console.log("async called back");
});
});
ES2015 と最新の JavaScript の導入以来、Promise は組み込み機能になります。構文は以下に示すように簡略化されています。
<br>function Later(lay) {<br> return new Promise((resolve) => {</p> <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 サイトの他の関連記事を参照してください。