什么是異步?
編程的時候,經常會出現一些事物需要占用時間,比如我們磁盤I/O,網絡訪問等等都會占用時間,此時有兩種策略
第1種就是一直等,沒有完成之前一直等待,一直等到有結果后再繼續執行; →同步
第2種,等的時候可以執行后面的程序,如果返回結果了,執行回調函數 →異步
要知道異步語句一定要有回調函數,因為要給異步程序一個入口。我們自己很難模擬異步程序,只能調用系統的異步語句
我們目前接觸過的異步語句
setInterval(function(){},1000); //定時器 setTimeout(funcction(){},2000); //延時器 animate({},3000,function(){}) // jQuery的動畫 xhr.open("get", "text.txt", true); //Ajax xhr.send()
同步:一般的計算都是同步場景
<script> var a = 0; while (a !=3) { a = parseInt(Math.random() * 10) console.log(a) } console.log("我執行完了") </script>
異步狀態,比如定時器
<script> var a=0 setInterval(function(){ a++; console.log(a); },1000) console.log("我先輸出") </script>