国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 關(guān)于js,alert()阻塞的問題

瀏覽:182日期:2023-09-26 09:09:06

問題描述

我們知道alert()是阻塞式的,但是一下代碼執(zhí)行順序有問題

執(zhí)行順序有問題

(()=>{ for(let i = 0; i < 5; i++){setTimeout(() => alert(i), 1000); }})()

結(jié)果: 0,3,2,1,4

執(zhí)行順序沒問題

(()=>{ for(let i = 0; i < 5; i++){setTimeout(() => console.log(i), 1000); }})()

結(jié)果:0,1,2,3,4

這是為什么呢?

問題解答

回答1:

建議看一下setTimeout的運(yùn)行原理

你如果在alert 0 的時(shí)候,不去點(diǎn)確定,等5s(線程空閑情況,有可能需要等10s或者更長(zhǎng)時(shí)間) 之后再去點(diǎn)擊,你發(fā)現(xiàn)順序就正常了

原因是,setTimeout在中代碼是,如果進(jìn)程被占用,等到進(jìn)程空閑了,就會(huì)跳過這次,執(zhí)行下一次了

回答2:

貼一個(gè)鏈接,看完以后你應(yīng)該茅塞頓開

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 扶绥县| 南和县| 乌兰察布市| 大关县| 托克逊县| 灵武市| 婺源县| 金塔县| 太白县| 加查县| 福贡县| 大竹县| 永嘉县| 湖南省| 乌兰浩特市| 塘沽区| 石台县| 榕江县| 那曲县| 琼结县| 长沙市| 巴里| 溆浦县| 台东县| 柘荣县| 广西| 昆明市| 庄河市| 建昌县| 郓城县| 赤水市| 凤山县| 伊通| 英吉沙县| 西林县| 额尔古纳市| 沙河市| 尉犁县| 六盘水市| 山东省| 瑞昌市|