天天看點

Javascript中的異步如何實作回調

在Javascript中,通過setTimeout函數也可以實作“不阻塞”和“有回調”。比如,下面的代碼:

<code class=" language-js">function f1(callback){ setTimeout(function () { // f1的任務代碼 callback(); }, 1000); } f1(f2); </code>

事實上,setTimeout方法對于時間的精度非常差,并不能真的保證是在1秒後執行,如果事件隊列中有一個長時間的方法在運作,那麼就阻塞了真正的f1方法内容的運作,直到長時間的方法允許完畢。

setTimeout(function(){alert('do');},0); var i=0; while(i<100000){ console.log(i); i++;

随筆 2019/5/5