ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript Promises -SitePointの概要
new Promise((resolve, reject) => { ... })
信号障害。resolve
reject
.then()
は、前の約束の結果を受け取ります
.then()
エラー.then()
:.catch()
:.catch()
のクリーンアップは、.finally()
Advanced Promise Method:.finally()
、Promise.all
Promise.race
Promise.any
約束の前に、非同期操作にコールバックが使用されていました。 ネストされたコールバック(コールバックヘル)は、複雑で維持が難しいコードにつながりました。 約束は、よりクリーンで読みやすい代替品を提供します
Promise.allSettled
簡単な約束の例:
および:
を使用します
<code class="language-javascript">const myPromise = new Promise((resolve, reject) => { // Asynchronous operation (e.g., network request) setTimeout(() => { const success = true; // Simulate success or failure if (success) { resolve("Operation successful!"); } else { reject("Operation failed!"); } }, 1000); });</code>約束のチェーン:
.then()
順次実行のためのチェーンの約束:.catch()
クリーンアップの場合は
<code class="language-javascript">myPromise .then(result => console.log(result)) // Handles successful resolution .catch(error => console.error(error)); // Handles rejection</code>
:
高度な方法:<code class="language-javascript">myPromise .then(result => { console.log(result); return anotherPromise(); // Return another promise to continue the chain }) .then(nextResult => console.log(nextResult)) .catch(error => console.error(error));</code>
Promise.all([promise1, promise2, ...])
:すべての約束が解決するのを待ちます。約束が拒否された場合、拒否します
Promise.allSettled([promise1, promise2, ...])
すべての約束が解決(解決または拒否)を待つ(解決または拒否)、結果の配列を返す。
Promise.any([promise1, promise2, ...])
Promise.race([promise1, promise2, ...])
async/await
約束ベースのコードを簡素化します:
async/await
適切なアプローチの選択:
<code class="language-javascript">const myPromise = new Promise((resolve, reject) => { // Asynchronous operation (e.g., network request) setTimeout(() => { const success = true; // Simulate success or failure if (success) { resolve("Operation successful!"); } else { reject("Operation failed!"); } }, 1000); });</code>
コールバック:
単純な非同期タスクに適しています。async/await
よくある質問: javascriptの約束とは?非同期操作の最終的な結果を表すオブジェクト。
Promise
.then()
.catch()
.finally()
は約束とどのように関係していますか?.then()
を実際の画像URLに置き換えることを忘れないでください。以上がJavaScript Promises -SitePointの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。