javascript - 关于js,alert()阻塞的问题
天蓬老师
天蓬老师 2017-04-17 16:38:12
0
2
638

我们知道alert()是阻塞式的,但是一下代码执行顺序有问题

执行顺序有问题

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

结果: 0,3,2,1,4

执行顺序没问题

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

结果:0,1,2,3,4

这是为什么呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(2)
PHPzhong

setTimeout の動作原理を確認することをお勧めします

アラート 0 がオンのときに [OK] をクリックしない場合は、5 秒待ってから (スレッドがアイドル状態の場合は 10 秒以上待つ必要がある場合があります)、もう一度クリックすると、順序が正常であることがわかります

その理由は、プロセスが占有されている場合、プロセスがアイドル状態の場合、今回はスキップされ、次回実行されるためです。

いいねを押す +0
大家讲道理

リンクを投稿すると、それを読んだ後に啓発されるはずです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート