成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

setTimeout和setInterval被遺忘的第3個(gè)參數(shù)

Vultr / 410人閱讀

摘要:一起因最近在看阮一峰,驚為天人的發(fā)現(xiàn)里面的一個(gè)例子原來(lái)居然還有第三個(gè)參數(shù),調(diào)用方法的時(shí)候可以作為傳參對(duì)象。二定義定時(shí)器啟動(dòng)時(shí),第三個(gè)及以后的參數(shù)是作為第一個(gè)參數(shù)也就是函數(shù)的參數(shù)傳進(jìn)去的。

一、起因

最近在看阮一峰e(cuò)s6,驚為天人的發(fā)現(xiàn)promise里面的一個(gè)例子:原來(lái) setTimeout居然還有第三個(gè)參數(shù),調(diào)用方法的時(shí)候可以作為傳參對(duì)象。

    function timeout(ms) {
      return new Promise((resolve, reject) => {
        setTimeout(resolve, ms, "done");
      });
    }
    
    timeout(100).then((value) => {
      console.log(value);
    });

二、定義

定時(shí)器啟動(dòng)時(shí),第三個(gè)及以后的參數(shù)是作為第一個(gè)參數(shù)(也就是函數(shù))的參數(shù)傳進(jìn)去的。

三、語(yǔ)法糖

我認(rèn)為第三個(gè)及以后的參數(shù)可能是setTimeout的語(yǔ)法糖,其實(shí)按照第二種寫法也是可以的,可能第一種寫法會(huì)比較吊一點(diǎn),畢竟很少人會(huì)知道setTimeout有第三個(gè)參數(shù)。

    setTimeout(resolve, ms, "done");
    setTimeout(resolve("done"), ms);

但是在Promise里面resolve只能傳一個(gè)參數(shù),在其他方法可以傳多個(gè)參數(shù)

    setTimeout(test,1000,1,2,3);

    function test(a ,b, c) {
        console.log(a, b, c) // 輸出1,2,3
    }

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103590.html

相關(guān)文章

  • 〔總結(jié)〕容易遺忘的JS知識(shí)點(diǎn)整理

    摘要:命名函數(shù)的賦值表達(dá)式另外一個(gè)特殊的情況是將命名函數(shù)賦值給一個(gè)變量。這是由于的命名處理所致,函數(shù)名在函數(shù)內(nèi)總是可見的。當(dāng)需要向回調(diào)函數(shù)傳遞參數(shù)時(shí),可以創(chuàng)建一個(gè)匿名函數(shù),在函數(shù)內(nèi)執(zhí)行真實(shí)的回調(diào)函數(shù)。 1.hasOwnProperty相關(guān) 為了判斷一個(gè)對(duì)象是否包含自定義屬性而不是原型鏈上的屬性,我們需要使用繼承自 Object.prototype 的 hasOwnProperty方法。has...

    explorer_ddf 評(píng)論0 收藏0
  • setTimeoutsetInterval的使用

    摘要:不過(guò)兩者各有各的應(yīng)用場(chǎng)景。方法實(shí)際上,和的語(yǔ)法相同。這意味著如果函數(shù)的主體部分需要秒鐘執(zhí)行完,那么整個(gè)函數(shù)則要每秒鐘才執(zhí)行一次。不過(guò)還是有辦法可以終止和函數(shù)的執(zhí)行。 var intervalProcess = setInterval(alert(GOAL!), 3000); 這個(gè)變量命名可以在實(shí)際代碼中采用 這兩個(gè)方法都可以用來(lái)實(shí)現(xiàn)在一個(gè)固定時(shí)間段之后去執(zhí)行JavaScript。不過(guò)...

    noONE 評(píng)論0 收藏0
  • process.nextTick() 、setTimeout()、setInterval() 運(yùn)行機(jī)

    摘要:注意如果主邏輯的代碼執(zhí)行時(shí)間已經(jīng)超過(guò)了第二個(gè)參數(shù)設(shè)置的時(shí)間,那么等運(yùn)行到該回調(diào)函數(shù)時(shí),它會(huì)忽略掉這個(gè)時(shí)間,并立即執(zhí)行。如果某一個(gè)進(jìn)行大量的計(jì)算,那么它就會(huì)阻塞在當(dāng)前的回調(diào)函數(shù)中,等待該計(jì)算完成后,再執(zhí)行下一個(gè)的回調(diào)函數(shù)。 setTimeout() ? JavaScript是一個(gè)單線程的語(yǔ)言,也就是說(shuō)它同一時(shí)間只能執(zhí)行一段代碼,接下來(lái)我們通過(guò)兩個(gè)例子說(shuō)明一下單線程語(yǔ)言和多線程語(yǔ)言的...

    lscho 評(píng)論0 收藏0
  • 【拒絕拖延】常見的JavaScript內(nèi)存泄露原因及解決方案

    摘要:前言內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。這里就講一些常見會(huì)帶來(lái)內(nèi)存泄露的原因。解決方案和都設(shè)為。 前言 內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。內(nèi)存泄漏并非指內(nèi)存在物理上的消失,而是應(yīng)用程序分配某段內(nèi)存后,由于設(shè)計(jì)錯(cuò)誤,導(dǎo)致在釋放該段內(nèi)存之前就失去了對(duì)該段內(nèi)存的控制,從而造成了內(nèi)存的浪費(fèi)。這里就講一些常見會(huì)帶來(lái)內(nèi)存泄露的原因。 0. 全局變量...

    tangr206 評(píng)論0 收藏0
  • 定時(shí)器

    摘要:提供定時(shí)執(zhí)行代碼的功能,叫做定時(shí)器,主要由和這兩個(gè)函數(shù)來(lái)完成。它返回一個(gè)整數(shù),表示定時(shí)器的編號(hào),以后可以用來(lái)取消這個(gè)定時(shí)器。上面代碼中,回調(diào)函數(shù)不會(huì)再執(zhí)行了,因?yàn)閮蓚€(gè)定時(shí)器都被取消了。 JavaScript 提供定時(shí)執(zhí)行代碼的功能,叫做定時(shí)器(timer),主要由setTimeout()和setInterval()這兩個(gè)函數(shù)來(lái)完成。它們向任務(wù)隊(duì)列添加定時(shí)任務(wù)。 setTimeout()...

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

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

0條評(píng)論

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