-->

WEB资讯

您的当前位置:首页 > 资讯 > JS

js 如何执行完一个异步的任务,在去执行另一个

2022-10-28 18:50:36  来源:admin 点击:398

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<script>

    //方式一

    new Promise(resolve => {

        setTimeout(() => {

            console.log('1', '我是第一个任务,必须第一个执行');

            resolve(1);

        }, 3000);

    }).then((val) => {

        new Promise(resolve => {

            setTimeout(() => {

                console.log('2', '我是第二个任务,等带1完成后执行');

                resolve(2);

            }, 3000);

        }).then(val => {

            setTimeout(() => {

                console.log('3', '我是第三个任务,等带2完成后执行');

            }, 2000);

        });


    });

    //方式二,可跨页面调用

    window.addEventListener('zfxFileUpLoad', function(){

        setTimeout(() => {

            console.log('5', '我是第五个任务,我需要等4执行完成后,才执行');

        }, 2000);

    }, false);


    setTimeout(() => {

        console.log('4', '我是第四个任务');

        window.dispatchEvent(new Event('zfxFileUpLoad'));

    }, 2000);


    //方式三,可跨页面调用

    var initCheck = self.setInterval(function(){

        if(sessionStorage.getItem("zfx123")){

            window.clearInterval("initCheck");

            sessionStorage.removeItem("zfx123");

            console.log('7', '我是第七个任务,我必须先完成6才执行');

        }

    },1000);

    setTimeout(() => {

        console.log('6', '我是第六个任务');

        sessionStorage.setItem("zfx123", "true")

    }, 2000);

</script>

</body>

</html>


相关文章更多 >

© 2024版权所有 水水网

电话:171780793