有時使代碼的工作,我們使用歸零 $超時:
$timeout(function() {
/* some stuff goes here */
}, 0);
我們的控制器,指令鏈路使用它....
我試圖瞭解上述行給我們,發現像互斥體那樣暫停消化週期直到所有模塊加載。
這example(由@Maxim回答)演示這個問題
有人可以傳播光看這個問題?
謝謝,
有時使代碼的工作,我們使用歸零 $超時:
$timeout(function() {
/* some stuff goes here */
}, 0);
我們的控制器,指令鏈路使用它....
我試圖瞭解上述行給我們,發現像互斥體那樣暫停消化週期直到所有模塊加載。
這example(由@Maxim回答)演示這個問題
有人可以傳播光看這個問題?
謝謝,
角的$timeout
基本上結束了setTimeout
一個漂亮的API。 JavaScript是一種異步,基於事件的語言,所以setTimeout
不停止執行,它基本上只是告訴瀏覽器
「請運行這段代碼X秒後,但在此之前繼續執行任何代碼如下」
該聲明的最後一部分是一向尊重,即使超時爲0
那麼,什麼情況是,在你傳遞給$timeout
功能的代碼執行後調用下面每隔一段代碼到012執行。
這與NG無關。
這與您希望瀏覽器在兩者之間做其他事情有關。
否則 - 瀏覽器可能卡住了。
這是一招,告訴瀏覽器:「我知道你很忙 - 因此 - 不要忘了我,並儘快做到這一點越好」
即使超時0?謝謝。請參閱我發佈的鏈接。沒有超時,這個例子不起作用 – snaggs
@fessy是的。 _您想要將長時間運行的循環或計算分解爲較小的組件,以便瀏覽器不會「凍結」或說「頁面上的腳本正忙」._ –
Royi Namir在其答案中描述了一個有用的理由。 –
因此,超時我只是降低執行優先級,對吧? – snaggs
有0超時,是的。 –