js是單線程就像一條流水線端蛆,僅是一條流水線凤粗。不管是同步和異步,做事情的時(shí)候只有一條流水線(單線程)今豆,同步和異步的差別就在于這條流水線上各個(gè)流程的執(zhí)行順序不同嫌拣。看到“異步”呆躲,首先想到的詞可能是“一邊...一邊...”,比如‘小花一邊聽歌一邊畫畫’异逐,好像沒啥毛病,異步就是這樣插掂,其實(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)上面的異步問題,怎么解決呢璃弄?我就要輸出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>
換湯不換藥要销,依法則套入工作即可,祝愉快順利夏块。