Newer
Older
2024-Tsubasa / system / js / promise.html
@tsubasa tsubasa on 30 Jul 2024 2 KB add: test file
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Promise</title>
</head>

<body>
    <p>Promise</p>
    <script>
        // let promise = new Promise((resolve, reject) => {
        //     // 非同期処理
        //     let success = true; // 仮の成功条件

        //     if (success) {
        //         resolve('Success!'); // 成功時
        //     } else {
        //         reject('Error!'); // 失敗時
        //     }
        // });

        // promise
        //     .then(result => {
        //         console.log(result); // 'Success!' が出力される
        //     })
        //     .catch(error => {
        //         console.error(error); // エラーが出力される
        //     });

        // ----------------------------------------------------

        // let promise = new Promise((resolve, reject) => {
        //     resolve(1);
        // });

        // promise
        //     .then(result => {
        //         console.log(result); // 1 が出力される
        //         return result * 2;
        //     })
        //     .then(result => {
        //         console.log(result); // 2 が出力される
        //         return result * 2;
        //     })
        //     .then(result => {
        //         console.log(result); // 4 が出力される
        //     });

        // let promise1 = Promise.resolve(1);
        // let promise2 = Promise.resolve(2);
        // let promise3 = Promise.resolve(3);

        // Promise.all([promise1, promise2, promise3])
        //     .then(results => {
        //         console.log(results); // [1, 2, 3] が出力される
        //     })
        //     .catch(error => {
        //         console.error(error);
        //     });

        // ----------------------------------------------------

        let promise1 = new Promise((resolve, reject) => {
            setTimeout(() => resolve('First'), 500);
        });

        let promise2 = new Promise((resolve, reject) => {
            setTimeout(() => resolve('Second'), 100);
        });

        Promise.race([promise1, promise2])
            .then(result => {
                console.log(result); // 'Second' が出力される
            })
            .catch(error => {
                console.error(error);
            });

    </script>
</body>

</html>