国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript:延遲訪問和延時(shí)執(zhí)行函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了JavaScript:延遲訪問和延時(shí)執(zhí)行函數(shù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在java中線程有sleep函數(shù)可以延遲執(zhí)行,但是在js中并沒有這樣的函數(shù)。
唯一有的就是setTimeout延遲執(zhí)行函數(shù),但是這個(gè)函數(shù)也是有很多坑。

for (var i = 0; i < 6; i++) {
    setTimeout(function () {
        console.log(i);
    }, 1000)
}//結(jié)果是6個(gè)6

場景:由于js是單線程異步執(zhí)行的,當(dāng)調(diào)用第三方API接口時(shí),如果對方?jīng)]有提供批量操作的接口,我們就需要多次請求相同的API,但是在for語句中會同時(shí)去訪問多個(gè)相同請求,會造成并發(fā)沖突。
這個(gè)時(shí)候需要延遲執(zhí)行請求,避免程序錯(cuò)誤。

let dataArray=[];
function apiRequest(val){
}
for (var i = 0; i < dataArray.length; i++) {
    setTimeout(apiRequest(dataArray[i]), 1000); // 意圖每秒執(zhí)行一次,不是累加的
}//error,并發(fā)沖突

單純使用setTimeout函數(shù),最后發(fā)現(xiàn)延遲1s后還是一起執(zhí)行了內(nèi)部函數(shù),造成沖突。
思路是每個(gè)setTimeout函數(shù)延遲不同的時(shí)間1000 * i。

let dataArray=[];
function apiRequest(val){
}
for (var i = 0; i < dataArray.length; i++) {
  (function (t, func, data) {
    // 注意這里是形參
    setTimeout(function () {
      func(data);
    }, 1000 * t); // 還是每秒執(zhí)行一次,不是累加的
  })(i, apiRequest, dataArray[i]); // 注意這里是實(shí)參,這里把要用的參數(shù)傳進(jìn)去
}

同時(shí),由于setTimeout函數(shù)的作用域不能訪問外部函數(shù),需要通過匿名函數(shù)傳遞外部參數(shù)進(jìn)去。文章來源地址http://www.zghlxwxcb.cn/news/detail-523801.html

到了這里,關(guān)于JavaScript:延遲訪問和延時(shí)執(zhí)行函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • javascript:在foreach循環(huán)完成之后執(zhí)行一個(gè)回調(diào)函數(shù)

    javascript:在foreach循環(huán)完成之后執(zhí)行一個(gè)回調(diào)函數(shù)

    常規(guī)方法 代碼如下面demo所示,在foreach的回調(diào)函數(shù)中進(jìn)行判斷,當(dāng)循環(huán)到數(shù)組最后一位元素的時(shí)候,執(zhí)行回調(diào)函數(shù): 使用Promise實(shí)現(xiàn) 實(shí)際工作中,當(dāng)目標(biāo)數(shù)組的元素內(nèi)容比較復(fù)雜,在回調(diào)函數(shù)中沒有辦法進(jìn)行簡單的邏輯判斷時(shí),可以使用Promise.all 方法實(shí)現(xiàn):

    2024年02月11日
    瀏覽(26)
  • 布局傳輸延遲該怎么計(jì)算?PCB中布線的傳播延時(shí)公式

    傳播延時(shí)(tPD)是信號從一個(gè)點(diǎn)傳播到另一個(gè)點(diǎn)所需要的時(shí)間。傳輸線傳播延時(shí)是材料相對介電常數(shù)的函數(shù)。 微帶布局傳播延時(shí) 您可以使用公式 5 來計(jì)算微帶線布局傳播延時(shí)。 公式 5: 帶狀線布局傳播延時(shí) 您可以使用公式 6 來計(jì)算帶狀線布局傳播延時(shí)。 公式 6: 圖 9 顯示了微

    2024年02月07日
    瀏覽(24)
  • JavaScript函數(shù)變量的生命周期,自執(zhí)行函數(shù)、閉包、反轉(zhuǎn)數(shù)組案例及冒泡排序案例

    JavaScript函數(shù)變量的生命周期,自執(zhí)行函數(shù)、閉包、反轉(zhuǎn)數(shù)組案例及冒泡排序案例

    一、變量的生命周期 JavaScript 變量的生命期從它們被聲明的時(shí)間開始。 局部變量會在函數(shù)運(yùn)行以后被刪除。 全局變量會在頁面關(guān)閉后被刪除。 二、自執(zhí)行函數(shù) 執(zhí)行函數(shù)通常都是定義之后立即執(zhí)行,以后都不再會調(diào)用,所以聲明時(shí)可以省略函數(shù)名,因此自執(zhí)行函數(shù)又叫匿名函

    2024年02月06日
    瀏覽(21)
  • 基于 Redis 實(shí)現(xiàn)高性能、低延遲的延時(shí)消息的方案演進(jìn)

    基于 Redis 實(shí)現(xiàn)高性能、低延遲的延時(shí)消息的方案演進(jìn)

    ??歡迎來系統(tǒng)設(shè)計(jì)專欄:基于 Redis 實(shí)現(xiàn)高性能、低延遲的延時(shí)消息的方案演進(jìn) ??其他專欄:java面試?數(shù)據(jù)結(jié)構(gòu)?源碼解讀?故障分析 ??作者簡介:大家好,我是小徐?? ??博客首頁:CSDN主頁 小徐的博客 ??每日一句: 好學(xué)而不勤非真好學(xué)者 ?? 歡迎大家關(guān)注! ?? 隨著

    2024年01月22日
    瀏覽(21)
  • JavaScript實(shí)現(xiàn)點(diǎn)擊復(fù)制(JS訪問剪貼板相關(guān))

    JavaScript實(shí)現(xiàn)點(diǎn)擊復(fù)制(JS訪問剪貼板相關(guān))

    一、具體代碼 ? 網(wǎng)頁前端開發(fā)中有時(shí)會出現(xiàn)這樣的場景:讓用戶點(diǎn)擊某個(gè)按鈕,然后就能直接復(fù)制對應(yīng)的文本內(nèi)容,讓用戶可以將文本內(nèi)容粘貼到想要粘貼的地方,常用于分享功能模塊中。如果想要實(shí)現(xiàn)這種效果就需要我們?nèi)ピL問用戶的剪貼板,然后把想要復(fù)制的內(nèi)容寫入

    2024年02月11日
    瀏覽(39)
  • 【技巧】ScriptEngine--Java動態(tài)執(zhí)行JS Javascript腳本(可調(diào)用java的方法)

    【技巧】ScriptEngine--Java動態(tài)執(zhí)行JS Javascript腳本(可調(diào)用java的方法)

    開發(fā)手冊 Java Platform, Standard Edition Nashorn User\\\'s Guide, Release 14 用戶手冊 Nashorn User\\\'s Guide (oracle.com) https://docs.oracle.com/en/java/javase/14/nashorn/ 甚至可以讓前端來寫后端業(yè)務(wù)代碼 可以通過js調(diào)用java的方法, 通過傳參的方式將java對象傳給js 可以單獨(dú)寫個(gè)JsUtil 讓js來調(diào)用 里邊寫常用的方法

    2024年02月01日
    瀏覽(19)
  • js 函數(shù)聲明和函數(shù)表達(dá)式的執(zhí)行結(jié)果

    參考:https://juejin.cn/post/7237051958993469496 推薦:看 《你不知道的 JavaScript》,里面有詳細(xì)的 js 執(zhí)行細(xì)節(jié),看完很有收獲。

    2024年02月08日
    瀏覽(27)
  • jQuery.js - 前端必備的Javascript庫

    jQuery.js - 前端必備的Javascript庫

    作者: WangMin 格言: 努力做好自己喜歡的每一件事 jQuery.js 是什么? jQuery是一個(gè)快速簡潔、免費(fèi)開源易用的JavaScript框架, 倡導(dǎo)寫更少的代碼,做更多的事情 。它封裝JavaScript常用的功能代碼,提供了一種簡便的JavaScript設(shè)計(jì)模式,以及我們開發(fā)中常用到的操作DOM的API,優(yōu)化HTML文

    2024年02月05日
    瀏覽(90)
  • JavaScript節(jié)流功能(js節(jié)流函數(shù),節(jié)流功能的應(yīng)用與解析,深入了解JavaScript節(jié)流函數(shù))

    簡述:上篇文章介紹了js防抖功能,這期說下js節(jié)流功能。節(jié)流就是某一高頻事件不斷被觸發(fā)時(shí),將多次執(zhí)行變成每隔一段時(shí)間執(zhí)行,具體點(diǎn)就是減少一個(gè)事件在一段時(shí)間內(nèi)的觸發(fā)頻率,它是一種常用的函數(shù)優(yōu)化技術(shù),可以限制函數(shù)的執(zhí)行頻率,從而提高網(wǎng)頁的性能和用戶體驗(yàn)

    2024年02月13日
    瀏覽(22)
  • 前端Javascript | 數(shù)組值隨機(jī)選擇函數(shù)

    為了解決 postman 傳參數(shù)據(jù)定制化,需要寫一點(diǎn)前置腳本,有用到隨機(jī)選取數(shù)組中的值來造數(shù)據(jù)。

    2024年02月07日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包