問題一覧に戻る
中級async
問題93: Promise.finally
Promiseのfinallyメソッドを学びましょう。finallyはPromiseの成功・失敗に関わらず必ず実行される処理を定義します。リソースの解放、ローディング表示の非表示、ログの記録など、結果に依存しないクリーンアップ処理に最適です。データベース接続のクローズ、ファイルハンドルの解放など、実務で重要なパターンです。
const fetchData = (success) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (success) {
resolve("データ取得成功");
} else {
reject("取得失敗");
}
}, 300);
});
};
fetchData(true)
.then(data => console.log(data))
.catch(error => console.error(error))
.(__ => console.log("クリーンアップ実行"));
fetchData(false)
.then(data => console.log(data))
.catch(error => console.error(error))
.(__ => console.log("クリーンアップ実行"));