- エラーハンドリングの追加: UNHANDLED REJECTIONエラーを解決する最も基本的な方法は、適切なエラーハンドリングを追加することです。以下は、Promiseチェーンでのエラーハンドリングの例です。
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.error('データの取得中にエラーが発生しました:', error);
throw error;
}
}
fetchData()
.then(data => {
// データの処理
})
.catch(error => {
// エラーハンドリング
});
- Promiseチェーンの末尾でのエラーハンドリング: Promiseチェーンの末尾でエラーハンドリングを行うこともできます。これにより、チェーン内のどこでエラーが発生してもキャッチすることができます。
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
// データの処理
})
.catch(error => {
console.error('データの取得中にエラーが発生しました:', error);
});
- エラーハンドリングの忘れを防ぐ: async/awaitを使用して非同期関数を記述する場合、エラーハンドリングを忘れることがあります。これを防ぐためには、非同期関数をtry-catchブロックで囲むことが重要です。
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.error('データの取得中にエラーが発生しました:', error);
throw error;
}
}
これらの解決策は、UNHANDLED REJECTIONエラーの一般的な対処方法です。ただし、エラーの具体的な原因によっては、別の対処方法が必要な場合もあります。エラーメッセージやスタックトレースを詳しく調査し、追加の対応策を検討することも重要です。