浅述js同步异步

js是单线程就像一条流水线,仅是一条流水线。不管是同步和异步,做事情的时候只有一条流水线(单线程),同步和异步的差别就在于这条流水线上各个流程的执行顺序不同。看到“异步”,首先想到的词可能是“一边...一边...”,比如‘小花一边听歌一边画画’,好像没啥毛病,异步就是这样,其实这是不对的。

同步:

<script>
    function num1(){
        console.log(1)
    }
    num1()

    function num2(){
        console.log(2)
    }
    num2()

    function num3(){
        console.log(3)
    }
    num3()

    function num4(){
        console.log(4)
    }
    num4()
</script>
异步:setTimeout和setInterval是最基础的异步,定时器虽然是0秒,然并暖。
<script>
    function num1(){
        setTimeout(function(){
            console.log(1)
        },0)
    }
    num1()

    function num2(){
        console.log(2)
    }
    num2()

    function num3(){
        console.log(3)
    }
    num3()

    function num4(){
        console.log(4)
    }
    num4()
</script>

出现上面的异步问题,怎么解决呢?我就要输出1,2,3,4

<script>
    function num1() {
        setTimeout(function () {
            console.log(1)
            num2()
            num3()
            num4()
        }, 0)
    }
    num1()

    function num2() {
        console.log(2)
    }


    function num3() {
        console.log(3)
    }


    function num4() {
        console.log(4)
    }

</script>

换汤不换药,依法则套入工作即可,祝愉快顺利。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容