1. Promise とは何ですか?
2. なぜ Promise が存在するのでしょうか?Promise は、非同期プログラミングで使用されるコールバック メカニズムのいくつかの問題を解決するために作成されました。
コールバック地獄: Promise はネストされたコールバックを .then().then()… に変換できるため、コードの記述と読み取りがより直感的になります。
3つのPromise共通API
4つのPromiseの一般的な使用法
.then() は値を返さない関数なので、Promise チェーンは継続されなくなります。この時点では、後で .then() を呼び出しても効果はありません。 Promise.resolve('foo').then(関数{ console.log(s); }).then(関数{ // 実行されない console.log(s); }); .then()には戻り値関数があり、Promiseチェーンを継続することができます。 Promise.resolve('foo').then(関数{ console.log(s); s + 'bar' を返します。 }).then(関数{ console.log(s); }); // フー // フーバー .then() には値を返す関数があり、戻り値は別の Promise オブジェクトであり、これによっても Promise が続行されます。前者との違いは、.then() を再度呼び出すと非同期操作がトリガーされる可能性があるため、次のラウンドの resolve() がすぐにはトリガーされないことです。 Promise.resolve('foo').then(関数{ 新しい Promise を返します ((resolve, reject) => { console.log(s); タイムアウトを設定する(() => { 解決(s + 'bar') }, 1000); }); }).then(関数{ console.log(s); }); // フー // foobar ("foo" が表示されてから 1 秒後に表示されます)
//デモ promise1 を const として返す。 定数promise2 = 42; const promise3 = 新しい Promise((resolve, 拒否) => { setTimeout(解決、100、'foo'); }); Promise.all([promise1, promise2, promise3]).then((値) => { console.log(値); }); // 期待される出力: 配列 [3, 42, "foo"] Promise.all() と sync await の違い //sync 操作時間を2秒待機する async function Index2() { コンソール.time() const p1 = 新しい Promise((resolve, reject) => {を待つ console.log('ここがp1です') タイムアウトを設定する(() => { 解決('p1の戻り値です') }, 1000) }) const p2 = 新しい Promise((resolve, reject) => {を待つ console.log('ここがp2です') タイムアウトを設定する(() => { 解決('p2の戻り値です') }, 1000) }) コンソールログ(p1) コンソール.log(p2) コンソール.timeEnd() } インデックス2(); // 呼び出しを実装するには Promise.all() を使用します。操作時間1秒関数Index() { コンソール.time() const p1 = new Promise((resolve, deny) => { console.log('ここがp1です') タイムアウトを設定する(() => { 解決('p1の戻り値です') }, 1000) }) const p2 = new Promise((resolve, deny) => { console.log('ここがp2です') タイムアウトを設定する(() => { 解決('p2の戻り値です') }, 1000) }) Promise.all([p1, p2]).then((val) => { コンソール.log(値) コンソール.timeEnd() }) } 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
効果: css: .s_type { 境界線: なし; 境界線の半径: 5px; 背景色: #f3f...
まず興味深い性質であるconic-gradientを紹介しましょう。円錐グラデーション!円グラフの作...
この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...
目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...
メタタグ機能METAタグは、HTMLタグのHEAD領域にある重要なタグです。文書の文字セット、使用言...
テーブルデータを作成する テーブル `praise_info` を作成します ( `id` bigi...
URL 書き換えは、Web サイトの優先ドメインを決定するのに役立ちます。同じリソース ページの複数...
1. doctypeの役割、厳密モードと混合モードの違い、そしてその重要性1. 構文形式: <...
著者 | 編集者 Awen | 制作 Tu Min | CSDN (ID: CSDNnews)不満を...
1. axiosプラグインをダウンロードする cnpm インストール axios -S 2. mai...
1. 需要3 つのテーブルがあります。一定期間にわたるさまざまな抗生物質感受性の結果、つまり rep...
まずアイデアはこの効果を実現するには、 <input type="checkbox&...
MySQL ifnull のネストされた使用ifnull をネストする方法があるかどうかオンラインで...
目次1. 基本的な環境設定2. データベースをインストールする3. zabbix関連コンポーネントを...
コードをコピーコードは次のとおりです。 <div スタイル="幅:630px;高さ:...