Javascript异步事件的疑问
PHPz
PHPz 2017-04-10 15:47:24
0
2
512
console.log(1) setTimeout(function () { console.log(2) }, 5000); setTimeout(function () { console.log(4) }, 500); console.log(3); output:1-3-4-2

Javascript会把回调函数放入主线程外的任务队列中,任务队列是一个先进先出的队列

那么回到上面的代码中,function () { console.log(2) }是排在function () { console.log(4) }前面的,为什么会先打印4呢?

PHPz
PHPz

学习是最好的投资!

全員に返信 (2)
Ty80

就算是先进先出,也有条件的,setTimeout函数本身有延迟时间,你的setTimeout(function () { console.log(4) }, 500);因为设置的延迟时间比setTimeout(function () { console.log(2) }, 5000);短,不考虑其他什么运行机制,就看逻辑,4不也是应该比2先输出么?

いいねを押す+0
    PHPzhong

    http://www.suchso.com/projecteactual/Javascript-setTimeout-timer.html

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!