ES6 Promise は、非同期操作を処理するために ECMAScript 2015 (略して ES6) で導入されたプログラミング モードです。Promise は、非同期プログラミングを簡素化し、コードをより保守しやすくします。Promise オブジェクトは、まだ完了していないが、将来完了すると予想される操作を表し、この操作の状態を追跡できます。
Promise には 3 つの状態があります。
- 保留中: 初期状態で、成功でも失敗でもありません。
- 完了: 操作が正常に完了したことを示します。
- 失敗 (拒否): 操作が失敗したか、エラーが発生したことを示します。
Promise のプロトタイプはthen
、catch
それぞれ成功状態と失敗状態のコールバック関数を処理するメソッドを提供します。
Promise の基本的な使用例を次に示します。
// 创建一个 Promise
const promise = new Promise((resolve, reject) => {
// 执行异步操作(例如:发起 Ajax 请求、读取文件等)
setTimeout(() => {
// 成功时执行 resolve 回调
resolve('操作成功');
// 发生错误时执行 reject 回调
// reject('操作失败');
}, 1000);
});
// 使用 then 方法处理成功状态
promise.then((result) => {
console.log(result); // 输出 "操作成功"
});
// 使用 catch 方法处理失败状态
promise.catch((error) => {
console.error(error); // 输出 "操作失败"
});
Promise は、Promise.all
やPromise.race
。
-
Promise.all
: 複数の Promise を含む配列を受け取り、すべての Promise が満たされると新しい Promise を返し、その解決コールバックは成功した Promise ごとに解決コールバック パラメータの配列を受け取ります; 1 つまたは複数の Promises が失敗した (拒否された) 場合、新しいPromise は失敗状態になり、最初に失敗した Promise の reject コールバック パラメータが新しい Promise の reject コールバックに渡されます。 -
Promise.race
: 複数の Promise を含む配列を受け取り、新しい Promise を返します. この新しい Promise は、最初の入力 Promise が完了すると (成功または失敗に関係なく)、対応する状態に入り、その解決または拒否のコールバック パラメータはコールバック パラメータと同じです最初に満たされた Promise の値は同じです。
オープンソース プロジェクトのアドレス: