まず、Promiseを作成する方法を見てみましょう。
const myPromise = new Promise((resolve, reject) => {
// 非同期の処理を実行する
// 処理が成功した場合はresolveを呼び出し、結果を渡す
// 処理が失敗した場合はrejectを呼び出し、エラーを渡す
});
Promiseを作成するときには、非同期の処理を実行するコールバック関数を渡します。処理が成功した場合はresolve
関数を呼び出し、結果を渡します。処理が失敗した場合はreject
関数を呼び出し、エラーを渡します。
次に、Promiseの結果にアクセスする方法を見てみましょう。
-
then
メソッドを使用する方法myPromise.then(result => { // Promiseの処理が成功した場合のコールバック関数 // resultにはresolveで渡された結果が含まれる }).catch(error => { // Promiseの処理が失敗した場合のコールバック関数 // errorにはrejectで渡されたエラーが含まれる });
then
メソッドを使用して、Promiseが成功した場合と失敗した場合のそれぞれに対応するコールバック関数を指定できます。成功した場合のコールバック関数では、result
引数にresolve
で渡された結果が含まれます。失敗した場合のコールバック関数では、error
引数にreject
で渡されたエラーが含まれます。 -
await
キーワードを使用する方法async function myAsyncFunction() { try { const result = await myPromise; // Promiseの処理が成功した場合のコード // resultにはresolveで渡された結果が含まれる } catch (error) { // Promiseの処理が失敗した場合のコード // errorにはrejectで渡されたエラーが含まれる } }
await
キーワードを使用すると、Promiseの結果を直接取得できます。await
キーワードはasync
関数内でのみ使用できます。await
キーワードの後にPromiseを記述すると、そのPromiseが完了するまで処理が一時停止し、結果を受け取ります。成功した場合はresult
変数に結果が格納され、失敗した場合はcatch
ブロック内でエラーがキャッチされます。
これらの方法を利用することで、Promiseの返り値へ簡単にアクセスできます。適切な方法を選択することで、非同期処理の結果を効果的に取得し、処理を制御することができます。