摘要:一起因最近在看阮一峰,驚為天人的發(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
摘要:命名函數(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...
摘要:不過(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ò)...
摘要:注意如果主邏輯的代碼執(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ǔ)言的...
摘要:前言內(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. 全局變量...
摘要:提供定時(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()...
閱讀 2245·2023-04-26 01:57
閱讀 3269·2023-04-25 16:30
閱讀 2338·2021-11-17 09:38
閱讀 1093·2021-10-08 10:14
閱讀 1398·2021-09-23 11:21
閱讀 3697·2019-08-29 17:28
閱讀 3469·2019-08-29 15:27
閱讀 956·2019-08-29 13:04