美文网首页
浅述js同步异步

浅述js同步异步

作者: 大胡子111 | 来源:发表于2018-03-16 14:02 被阅读12次

    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>
    

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

    相关文章

      网友评论

          本文标题:浅述js同步异步

          本文链接:https://www.haomeiwen.com/subject/xiwlqftx.html