ホームページ > ウェブフロントエンド > jsチュートリアル > 「setTimeout」コールバックをPromiseに変換するにはどうすればよいですか?

「setTimeout」コールバックをPromiseに変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-26 18:51:13
オリジナル
638 人が閲覧しました

How to Convert a `setTimeout` Callback into a Promise?

setTimeout から Promise を作成する方法

問題:

非同期プログラミングでは、次のように変換すると有益な場合がありますプロミスへのコールバック。ただし、setTimeout のような非 Promise ベースの関数は、デフォルトではすぐに Promise を返しません。この記事では、setTimeout のような関数のコンテキスト内で使用できる Promise を作成する方法について説明します。

最初の考え:

提供された例では、setTimeout 関数を次のように定義します。コールバック。 Promise を作成するには、Promise コンストラクターの executor 関数内で setTimeout コールバックをラップする必要があります。

修正された解決策:

最新の JavaScript と Promises を使用して、次のコードを実行します。 setTimeout から Promise を作成する方法を示します:

function later(delay) {
  return new Promise(resolve => setTimeout(resolve, delay));
}
ログイン後にコピー

この後の関数は遅延を返し、指定された遅延後に解決される Promise を返します。その後、返された Promise を非同期コードで使用できます。

高度な考慮事項:

より高度なシナリオについては、後の関数の次のバリエーションを検討してください。

  • 価値のある約束の遅延: パスできますsetTimeout コールバックへの値。Promise によって解決されます。
  • Cancellable Promise: setTimeout および関連する Promise をキャンセルするには、cancel メソッドを含むオブジェクトを作成できます。

結論:

作成setTimeout などのコールバックからの Promise を使用すると、非同期操作をコードベースに簡単に統合できます。この手法の実装方法を理解することで、非同期 JavaScript アプリケーションの読みやすさと保守性を向上させることができます。

以上が「setTimeout」コールバックをPromiseに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート