JavaScript の約束を学びましょう。パート 1 — 約束とは何ですか?
JavaScript ファンの皆さん、今日は Promise について、そして Promise をより深く学び、理解する方法について説明します。多くの人がこれを複雑なテーマだと考えて混乱していますが、難しいことは何もありません。頻繁に練習すれば必ず専門家になれると私は保証します。今日の私の仕事は、皆さんが基本を理解できるように手助けし、約束の本質とそれが必要な理由を説明することです。
Promise とは何ですか? JavaScript で Promise が必要な理由は何ですか?
あなたが毎朝継続的に運動することを友達に約束し、それを実行したら通知すると想像してください。あなたの約束は、あなたやあなたの友人が自分の人生を歩むことを妨げるものではなく、彼らはあなたからの結論や行動を決めるために、誓約の成否についての通知を待っているだけです。
この小さな例は、イベントとしての Promise の性質と、このイベントによって接続される 2 人のアクターを示しています。この場合、消費者 (友達) とプロデューサー (あなた) です。
少し単純化すると、JavaScript でも Promise クラスと同じ動作が見られると言えます。これにより、JavaScript のメイン スレッドをブロックすることなく非同期タスクを実行し、終了時にサブスクライバーに通知することができます。私たちの約束。
使用方法を理解するために例を見てみましょう:
このコードを順番に見てみましょう:
- エグゼキュータ関数 を使用して Promise インスタンスを作成します (これは Promise クラスのコンストラクターに渡す関数です)。
エグゼキューター関数は Promise の基礎であり、この関数は Promise が作成されると即座に呼び出されます。
executor 関数は 2 つの位置パラメータを受け取ります。1 つ目は解決メソッド、2 つ目は拒否メソッドです。これらのメソッドは両方とも、ある時間内に約束を完了する責任があります。
たとえば、私たちは毎朝起きて一週間運動することを約束しました。この場合、約束は丸 1 週間続きます。3 日目に約束を守れない場合は、reject メソッドを呼び出すことができます。そうすれば、約束を購読している全員がそのことを知ることができます。逆に、約束を守った場合は、7 日目に、resolve メソッドを呼び出して、友達に約束を守ることができたことを通知します。したがって、消費者 (あなたの友人) は、いつ結果を伝えるかには完全に無関係であることがわかります。消費者は、その結果をいつ伝えられるかということを確認するだけで済みます。
下の図は、考えられる Promise の状態を示しています。「保留中」、「履行済み」、「拒否済み」です。 Promise が開始されたばかりの場合、そのステータスは「保留中」になります。完了後は、完了するためにどのメソッドが呼び出されたかに応じて、「完了」または「拒否」のいずれかになります。
Promise Executor は複数回完了することができず、解決メソッドまたは拒否メソッドへの後続の呼び出しはすべて無視されることにも注意してください。
- (解決または拒否メソッドを呼び出して) Promise を終了したと言った瞬間に、Promise を購読しているすべての人がペイロード付きの通知を受け取ります。これは Promise インスタンスの 2 つの特別なメソッド内で取得できます。 。それらのメソッドは次のとおりです: Promise.prototype.then および Promise.prototype.catch
Promise.prototype.then メソッドを使用すると、上記のスクリーンショットのように関数が 2 つのコールバックを受け入れるため、ポジティブなシナリオとネガティブなシナリオの両方を一度に処理できます。
Promise.prototype.catch を使用すると、次のような否定的なシナリオのみを処理できます。
そして Promise.prototype をそのままにして、ポジティブなシナリオに備えます。
また、Promise は、結果に関係なく実行されるべきコードを実行するために使用できるメソッドを提供します。このメソッドは Promise.prototype.finally:
です。このメソッドは、以前の操作を完了またはクリーンアップするように設計されているため、何も取らず、何も返しません。たとえば、ユーザーにメッセージを表示したり、ローダーを非表示にしたりします。
わかりました。この時点で、Promise の基本については説明したので、API からのデータのリクエスト、生の HTTP 応答から JSON への変換、出力などの実際の例に進むことをお勧めします。コンソールへ:
ご覧のとおり、現実の世界でそれを使用した結果は、記事の冒頭で練習したスキルとそれほど変わりません。それでも、いくつかの新しいことに気づいたかもしれません:
以前の各 Promise.prototype.then ハンドラーと Promise.prototype.catch ハンドラーの結果は、次の Promise ハンドラーに渡されます。 Response.json メソッドは Promise を返し、実行されると JSON を返し、次のハンドラーを呼び出してその JSON を渡します。
Promise.prototype.finally の場合、これは「目に見えない」ハンドラーであり、前の応答をそれ自体を介して次の応答に渡すと言えます。
すばらしいですね。この時点で、Promise とは何か、Promise の使用方法、Promise がどのような状態を持つことができるかについて、よりよく理解できたと思います。また、今日検討した重要なポイントを以下にリストします (チートシート):
まとめ:
JavaScript Promise — 非同期操作を実行し、それが完了したときにコンシューマーに通知できる特別なオブジェクトです
Promise インスタンスには「保留中」、「履行済み」、「拒否済み」の 3 つの状態があります
Promise インスタンスには、「then」、「catch」、「finally」という 3 つの主なメソッドがあります。
Promise.prototype.then — 拒否と成功の両方の結果を処理するように設計されています
Promise.prototype.catch — 拒否された結果を処理するように設計されています
Promise.prototype.finally — クリーンアップを機能させるように設計されています
ハンドラーは任意の順序でチェーンでき、順番に実行されます
前の Promise の結果は次の Promise に反映されるため、Promise チェーンを拡張可能にするには、「finally」ハンドラーを除く毎回ハンドラーから Promise を返すことを忘れないようにする必要があります。
このトピックの今後の部分では、より高度な Promise テクニックについて説明し、その機能をさらに詳しく掘り下げていきますので、購読、いいね! をして、ぜひご注目ください!
以上がJavaScript の約束を学びましょう。パート 約束とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
