淺述js同步異步

js是單線程就像一條流水線,僅是一條流水線。不管是同步和異步,做事情的時(shí)候只有一條流水線(單線程),同步和異步的差別就在于這條流水線上各個(gè)流程的執(zhí)行順序不同??吹健爱惒健保紫认氲降脑~可能是“一邊...一邊...”,比如‘小花一邊聽(tīng)歌一邊畫(huà)畫(huà)’,好像沒(méi)啥毛病,異步就是這樣,其實(shí)這是不對(duì)的。

同步:

<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是最基礎(chǔ)的異步,定時(shí)器雖然是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>

出現(xiàn)上面的異步問(wèn)題,怎么解決呢?我就要輸出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>

換湯不換藥,依法則套入工作即可,祝愉快順利。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容