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>
換湯不換藥,依法則套入工作即可,祝愉快順利。