非同期処理が終わってから次の処理を行いたい。
例えばこのコード
<script>
// 非同期処理を行う関数
function fetchData() {
// 仮の非同期処理(例: 1秒後にデータを取得)
setTimeout(() => {
console.log("データを取得しました。");
}, 1000);
}
fetchData();
after();
function after(){
console.log('データ取得後に行う処理' );
}
</script>
結果は、データを取得後にデータ取得後に行う処理を行いたいのだが、
データ取得が後になっている。
先に非同期でデータを取得後に、次の処理を行いたい場合はPomiseを利用する。
<script>
// 非同期処理を行う関数をPromiseでラップする
function fetchData() {
return new Promise((resolve, reject) => {
// 仮の非同期処理(例: 1秒後にデータを取得)
setTimeout(() => {
const data = { message: "データを取得しました" };
resolve(data); // 処理成功時にresolveを呼び出す
// reject("エラーが発生しました"); // エラー時にrejectを呼び出す
}, 1000);
});
}
// Promiseを使用して非同期処理を実行
fetchData()
.then((result) => {
console.log(result.message);
after();
})
.catch((error) => {
console.error(error);
});
// 非同期処理語に行うメソッド
function after(um){
console.log('データ取得後に行う処理' );
}
</script>
データ取得後に、次の処理が行われている。