摘要:如查看官方文檔不難發現,,因此,如果需求確實要先執行以下原函數,再返回該函數給周期執行。此時可以如下實現若不返回時,此函數只會執行一次當然這里也可以先執行原函數,再加定時器,只是這樣寫的不漂亮嗎為什么不呢
需求背景
最近經常遇到這樣的問題:需要間隔多少秒獲取一次數據。實際中,往往采用setInterval來實現,但是當參數傳遞不當時,會出現先延遲了一段時間后再執行獲取的數據的函數。
如:
var data1=0; function count1(){ console.log("count1:",data1++); } setInterval(count1,1000);
此時可以觀察控制臺,發現打印第一次會有延遲。如:
查看setInterval官方文檔不難發現:
var intervalID = window.setInterval(func, delay[, param1, param2, ...]); var intervalID = window.setInterval(code, delay); Parameters
func,A function to be executed every delay milliseconds.
code,
An optional syntax allows you to include a string instead of a function, which is compiled and executed every delay milliseconds. This syntax is not recommended for the same reasons that make using eval() a security risk.
因此,如果需求確實要先執行以下原函數,再返回該函數給setInterval周期執行。此時可以如下實現:
var data2=0; var count2= function(){ console.log("count2:",data2++); return count2;//若不返回時,此函數只會執行一次 } setInterval(count2(),1000);
當然這里也可以先執行原函數,再加定時器setInterval,只是這樣寫的不漂亮嗎?為什么不呢
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106547.html
摘要:創建了一個簡單的計時器,在經過給定的時間后,回調函數將會被執行。接受一個計時器由之前兩種計時器返回并且停止計時器回調函數的執行。然而,我們可以注意到,當定時器再一次觸發在計時器回調函數正在執行的時候,這一次定時器回調函數被丟棄了。 最近都在看一些JavaScript原理層面的文章,恰巧看到了jQuery的作者的一篇關于JavaScript計時器原理的解析,于是誠惶誠恐地決定把原文翻譯成...
摘要:提出標準,允許腳本創建多個線程,但是子線程完全受主線程控制,且不得操作。所以,這個新標準并沒有改變單線程的本質。事件循環主線程線程只會做一件事,就是從消息隊列里面取消息執行消息,再取消息再執行。工作線程是生產者,主線程是消費者。 最近項目中遇到了一個場景,其實很常見,就是定時獲取接口刷新數據。那么問題來了,假設我設置的定時時間為1s,而數據接口返回大于1s,應該用同步阻塞還是異步?我們...
摘要:在服務器端,異步模式甚至是唯一的模式,因為執行環境是單線程的,如果允許同步執行所有請求,服務器性能會急劇下降,很快就會失去響應。第三是,捕捉不到他的錯誤異步編程方法回調函數這是異步編程最基本的方法。 前言 你可能知道,Javascript語言的執行環境是單線程(single thread)。所謂單線程,就是指一次只能完成一件任務。如果有多個任務,就必須排隊,前面一個任務完成,再執行后面...
摘要:當執行上下文被創建時,它的作用域鏈初始化為當前運行函數的屬性中的對象。該過程搜索執行環境的作用域鏈,查找同名的標識符。搜索實例成員比從字面量或局部變量中讀取數據代價更高,再加上遍歷原型鏈帶來的開銷,這讓性能問題更為嚴重。 最近在閱讀這本Nicholas C.Zakas(javascript高級程序設計作者)寫的最佳實踐、性能優化類的書。記錄下主要知識。 加載和執行 腳本位置 放在中的...
閱讀 3891·2021-11-22 13:54
閱讀 2669·2021-09-30 09:48
閱讀 2353·2021-09-28 09:36
閱讀 3104·2021-09-22 15:26
閱讀 1334·2019-08-30 15:55
閱讀 2505·2019-08-30 15:54
閱讀 1419·2019-08-30 14:17
閱讀 2335·2019-08-28 18:25