【JavaScript】Promiseを使った非同期処理

JavaScript

非同期処理が終わってから次の処理を行いたい。
例えばこのコード

 <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>

データ取得後に、次の処理が行われている。

タイトルとURLをコピーしました