1. 程式人生 > >JavaScript非同步和同步載入中setTimeout時間執行問題

JavaScript非同步和同步載入中setTimeout時間執行問題

setTimeout( function(){
alert("1");
},5000)
function A(){
//兩種情況:
//第一種,A函式是同步載入,載入資料需要10s
//第二種,A函式是非同步載入,載入資料需要10s
}
this.A();

問:alert("1")什麼時間執行?

解答:

JS是單執行緒執行,在存在同步請求時,先執行同步請求,同步請求執行完成後在執行setTimeout;

在非同步請求時,由於非同步請求的原理,先執行setTimeout,然後執行非同步請求。

第一種情況:alert("1")在執行開始15s後執行;

第二種情況:alert("1")在執行開始5s後執行;