Promise.all()の関数
入力: Promise の配列を受け取ります (必須ではありません)
出力: すべての成功 Promise の結果の配列を含む Promise を返します。
注: Promise が失敗すると、即座に拒否されます。
Promise.myAll() のコード
`
Promise.myAll = 関数 (約束) {
return new Promise(関数 (解決、拒否) {
// 入力が配列かどうかを確認します
if (!Array.isArray(promises)) {
return replace(new TypeError("引数は配列である必要があります"));
}
let results = []; let completedPromises = 0; promises.forEach(function (promise, index) { // Use Promise.resolve to handle non-promise values Promise.resolve(promise) .then(function (value) { results[index] = value; completedPromises += 1; // If all promises are resolved if (completedPromises === promises.length) { resolve(results); } }) .catch(function (error) { reject(error); // Reject if any promise fails }); }); // Handle case with empty array of promises if (promises.length === 0) { resolve([]); }
});
};
`
1. すべての約束が正常に解決された場合
。すべての Promise が解決され、その結果は結果配列に保存されます。
。解決された Promise の数が入力配列の長さと等しい場合、外側の Promise は結果の配列で解決されます。
2. Promise.resolve() を使用する理由
。 Promise の配列では、すべての値が Promise である必要はありません。数値、文字列、または任意の同期関数など、任意の値を使用できます。
渡された値がすでに Promise である場合 - 余分なラッピングや変更が発生しないように、同じ Promise を返します。
渡された値が Promise ではない場合 - 解決された Promise で値をラップし、Promise のように扱い、.then()
で処理できるようにします。
3. なぜ Promise.resolve() で、なぜ Promise.reject() ではないのか
値で解決できるように、reject を使用すると、値がエラーとみなされ、catch ブロックに捕捉されます。
4. Promise が失敗した場合はどうなりますか?
- これにより、外側のプロミーのreject()呼び出しがトリガーされ、Promise.myAll()が即座に拒否されます。
- foreach ループは同期プログラムとして続行されます
- Promise の残りの部分は解決され、その値が結果に追加されますが、completedPromise!=promises.length であるため解決されず、まだ試行しても Promise.myAll() が保留状態ではないため無視されます。
ご不明な点がございましたら、お気軽にコメント欄にてお問い合わせください。
以上がPromise.all() のポリフィルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!
