国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何讓setInterval定時(shí)器里面的函數(shù)先觸發(fā)一次再正常延時(shí)執(zhí)行

aervon / 1337人閱讀

摘要:如查看官方文檔不難發(fā)現(xiàn),,因此,如果需求確實(shí)要先執(zhí)行以下原函數(shù),再返回該函數(shù)給周期執(zhí)行。此時(shí)可以如下實(shí)現(xiàn)若不返回時(shí),此函數(shù)只會(huì)執(zhí)行一次當(dāng)然這里也可以先執(zhí)行原函數(shù),再加定時(shí)器,只是這樣寫的不漂亮嗎為什么不呢

需求背景

最近經(jīng)常遇到這樣的問(wèn)題:需要間隔多少秒獲取一次數(shù)據(jù)。實(shí)際中,往往采用setInterval來(lái)實(shí)現(xiàn),但是當(dāng)參數(shù)傳遞不當(dāng)時(shí),會(huì)出現(xiàn)先延遲了一段時(shí)間后再執(zhí)行獲取的數(shù)據(jù)的函數(shù)。

如:

var data1=0;
function count1(){
  console.log("count1:",data1++);
}
setInterval(count1,1000);

此時(shí)可以觀察控制臺(tái),發(fā)現(xiàn)打印第一次會(huì)有延遲。如:

查看setInterval官方文檔不難發(fā)現(xiàn):

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.

因此,如果需求確實(shí)要先執(zhí)行以下原函數(shù),再返回該函數(shù)給setInterval周期執(zhí)行。此時(shí)可以如下實(shí)現(xiàn):

var data2=0;
var count2= function(){
  console.log("count2:",data2++);
  return count2;//若不返回時(shí),此函數(shù)只會(huì)執(zhí)行一次
}
setInterval(count2(),1000);

當(dāng)然這里也可以先執(zhí)行原函數(shù),再加定時(shí)器setInterval,只是這樣寫的不漂亮嗎?為什么不呢

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/106547.html

相關(guān)文章

  • JavaScript計(jì)時(shí)器工作原理

    摘要:創(chuàng)建了一個(gè)簡(jiǎn)單的計(jì)時(shí)器,在經(jīng)過(guò)給定的時(shí)間后,回調(diào)函數(shù)將會(huì)被執(zhí)行。接受一個(gè)計(jì)時(shí)器由之前兩種計(jì)時(shí)器返回并且停止計(jì)時(shí)器回調(diào)函數(shù)的執(zhí)行。然而,我們可以注意到,當(dāng)定時(shí)器再一次觸發(fā)在計(jì)時(shí)器回調(diào)函數(shù)正在執(zhí)行的時(shí)候,這一次定時(shí)器回調(diào)函數(shù)被丟棄了。 最近都在看一些JavaScript原理層面的文章,恰巧看到了jQuery的作者的一篇關(guān)于JavaScript計(jì)時(shí)器原理的解析,于是誠(chéng)惶誠(chéng)恐地決定把原文翻譯成...

    geekzhou 評(píng)論0 收藏0
  • 重新認(rèn)識(shí)時(shí)器

    摘要:重新認(rèn)識(shí)三如果被推遲執(zhí)行的回調(diào)函數(shù)是某個(gè)對(duì)象的方法,那么該方法中的關(guān)鍵字將指向全局環(huán)境,而不是定義時(shí)所在的那個(gè)對(duì)象。 重新認(rèn)識(shí)一 一般,setTimeout函數(shù)接受兩個(gè)參數(shù),第一個(gè)參數(shù)func|code是將要推遲執(zhí)行的函數(shù)名或者一段代碼(引擎內(nèi)部使用eval函數(shù),將字符串轉(zhuǎn)為代碼),第二個(gè)參數(shù)delay是推遲執(zhí)行的毫秒數(shù)。但是,setTimeout 還可以添加更多參數(shù)。第二個(gè)之后的參數(shù)...

    paney129 評(píng)論0 收藏0
  • 從setTimeout-setInterval看JS線程

    摘要:提出標(biāo)準(zhǔn),允許腳本創(chuàng)建多個(gè)線程,但是子線程完全受主線程控制,且不得操作。所以,這個(gè)新標(biāo)準(zhǔn)并沒(méi)有改變單線程的本質(zhì)。事件循環(huán)主線程線程只會(huì)做一件事,就是從消息隊(duì)列里面取消息執(zhí)行消息,再取消息再執(zhí)行。工作線程是生產(chǎn)者,主線程是消費(fèi)者。 最近項(xiàng)目中遇到了一個(gè)場(chǎng)景,其實(shí)很常見,就是定時(shí)獲取接口刷新數(shù)據(jù)。那么問(wèn)題來(lái)了,假設(shè)我設(shè)置的定時(shí)時(shí)間為1s,而數(shù)據(jù)接口返回大于1s,應(yīng)該用同步阻塞還是異步?我們...

    elliott_hu 評(píng)論0 收藏0
  • javascript異步編程詳解

    摘要:在服務(wù)器端,異步模式甚至是唯一的模式,因?yàn)閳?zhí)行環(huán)境是單線程的,如果允許同步執(zhí)行所有請(qǐng)求,服務(wù)器性能會(huì)急劇下降,很快就會(huì)失去響應(yīng)。第三是,捕捉不到他的錯(cuò)誤異步編程方法回調(diào)函數(shù)這是異步編程最基本的方法。 前言 你可能知道,Javascript語(yǔ)言的執(zhí)行環(huán)境是單線程(single thread)。所謂單線程,就是指一次只能完成一件任務(wù)。如果有多個(gè)任務(wù),就必須排隊(duì),前面一個(gè)任務(wù)完成,再執(zhí)行后面...

    huangjinnan 評(píng)論0 收藏0
  • 《高性能javascript》閱讀摘要

    摘要:當(dāng)執(zhí)行上下文被創(chuàng)建時(shí),它的作用域鏈初始化為當(dāng)前運(yùn)行函數(shù)的屬性中的對(duì)象。該過(guò)程搜索執(zhí)行環(huán)境的作用域鏈,查找同名的標(biāo)識(shí)符。搜索實(shí)例成員比從字面量或局部變量中讀取數(shù)據(jù)代價(jià)更高,再加上遍歷原型鏈帶來(lái)的開銷,這讓性能問(wèn)題更為嚴(yán)重。 最近在閱讀這本Nicholas C.Zakas(javascript高級(jí)程序設(shè)計(jì)作者)寫的最佳實(shí)踐、性能優(yōu)化類的書。記錄下主要知識(shí)。 加載和執(zhí)行 腳本位置 放在中的...

    duan199226 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<