[ TS LeetCode 筆記 ] 2715. Timeout Cancellation.

閱讀時間約 3 分鐘

題目:

Given a function fn, an array of arguments args, and a timeout t in milliseconds, return a cancel function cancelFn.

After a delay of tfn should be called with args passed as parameters unless cancelFn was invoked before the delay of t milliseconds elapses, specifically at cancelT ms. In that case, fn should never be called.


先備知識:

  • 包括對回調函數的了解、Rest參數的使用、clearTimeoutsetTimeout 方法的認識。

setTimeout 方法:

  • setTimeout 方法的工作原理: 接受一個回調函數和一個延遲時間(以毫秒為單位)。
  • 強調 setTimeout 引入了異步行為,使得JavaScript引擎可以在延遲計時器過程中繼續執行其他代碼。

clearTimeout 方法:

  • 解釋了為什麼需要使用 clearTimeout,它用於取消以前使用 setTimeout 設置的計時器。
  • 提到了 clearTimeout 通過傳遞計時器的唯一標識符(timeout ID)來取消回調函數的執行和計時器的停止。
  • 強調了 clearTimeout 允許控制計劃函數的執行,並提供了在計時器過程中暫停或取消計劃執行的能力。

應用場景:

  • clearTimeoutsetTimeout 的應用場景,包括動畫、事件處理、計劃和異步編程等。

結論:

  • 總結 clearTimeout 的重要性,它允許停止或取消計劃函數的執行,提高代碼的可控性和靈活性。
  • 強調 setTimeoutclearTimeout 為管理和調整代碼的定時提供強大的機制,有助於提高JavaScript程序的效率和響應性。

解題:

type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue };
type Fn = (...args: JSONValue[]) => void

/**
 * @param {Function} fn
 * @param {Array} args
 * @param {number} t
 * @return {Function}
 */
function cancellable(fn: Fn, args: JSONValue[], t: number): Function {
    const timer = setTimeout(()=> fn(...args), t);
    return () => clearTimeout(timer);
};


相關知識補給

如果不知道什麼是 Javascript Event Loop 可以參考這部影片,裡面介紹的非常詳細。


2會員
8內容數
"TypeScript LeetCode" 以 TypeScript 為工具,深入解析 LeetCode 上的算法和資料結構問題,提供清晰解釋和程式碼示範,幫助您精進 TypeScript 技能,解決挑戰性問題,無論您的程式開發水平如何。讓我們一同鑽研、提升,迎接算法挑戰,成長技術專長!,快速提高您的技能水平
留言0
查看全部
發表第一個留言支持創作者!
毛怪的沙龍 的其他內容
分享今年29歲的我,離職之後開始探索自己的過程。
分享今年29歲的我,離職之後開始探索自己的過程。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
題目摘要 給定一個整數陣列 `prices`,其中 `prices[i]` 代表第 `i` 天的股票價格。在每一天,你可以決定買入和/或賣出股票。然而,你同一時間只能擁有至多一股股票。你可以在同一天內買入然後立刻賣出股票。找出並返回你可以實現的最大利潤。
Thumbnail
題目摘要 給定一個陣列 prices,其中 prices[i] 代表第 i 天的股票價格。你希望透過在某一天購買一股股票,並在未來的某一天賣出它,以最大化你的利潤。如果無法獲得任何利潤,則返回 0。
Thumbnail
題目摘要: 在這篇文章中,我們將討論如何使用摩爾投票算法找出一個陣列中的「主要元素」。主要元素指的是在陣列中出現次數超過一半的元素,並且我們可以確定它一定存在於陣列中。這個算法的核心思想和應用將在本文中被詳細介紹。 題目知識點: 主要元素的定義和重要性。 摩爾投票算法的工作原理和優點。 先備知識
Thumbnail
這篇文章介紹了如何建立一個時間限制的異步函數,以確保操作在指定時間內完成。 - 知識點包括異步編程、Promise使用、計時器函數和函數引數處理,以及錯誤處理。 - 應用情境包括網頁請求超時控制、前端性能優化和遊戲開發。 - 提高應用程式的可靠性和用戶體驗,確保操作不會花費過長的時間。 - 文章內
Thumbnail
上週的雙11大家有買東西嗎? 去年雙11購入了tokuto的眼部按摩器TS-183使用滿一年心得分享給大家,希望能幫助跟我一樣眼睛容易酸澀又找不到相關心得文的人~
Thumbnail
連自己都懶得去翻前面1到28天的紀錄😂決定簡單整理這一年秋家發生什麼事,還有那些鄰居和朋友。
2021年底前價格應該會在 112-120之間移動
Thumbnail
電動汽車龍頭 Tesla,正式發布了他們在今年第二季的財報,交出了非常亮眼的成績,無論是在營收,或者是獲利上,都超過了市場上的分析師預期,也讓盤後特斯拉的股價上漲了 1%。當然,作為市場上最熱門的股票之一,特斯拉的營運狀況是非常多人關注的焦點,所以就讓科技巨頭解碼來帶大家看特斯拉最新一季的財報重點。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
題目摘要 給定一個整數陣列 `prices`,其中 `prices[i]` 代表第 `i` 天的股票價格。在每一天,你可以決定買入和/或賣出股票。然而,你同一時間只能擁有至多一股股票。你可以在同一天內買入然後立刻賣出股票。找出並返回你可以實現的最大利潤。
Thumbnail
題目摘要 給定一個陣列 prices,其中 prices[i] 代表第 i 天的股票價格。你希望透過在某一天購買一股股票,並在未來的某一天賣出它,以最大化你的利潤。如果無法獲得任何利潤,則返回 0。
Thumbnail
題目摘要: 在這篇文章中,我們將討論如何使用摩爾投票算法找出一個陣列中的「主要元素」。主要元素指的是在陣列中出現次數超過一半的元素,並且我們可以確定它一定存在於陣列中。這個算法的核心思想和應用將在本文中被詳細介紹。 題目知識點: 主要元素的定義和重要性。 摩爾投票算法的工作原理和優點。 先備知識
Thumbnail
這篇文章介紹了如何建立一個時間限制的異步函數,以確保操作在指定時間內完成。 - 知識點包括異步編程、Promise使用、計時器函數和函數引數處理,以及錯誤處理。 - 應用情境包括網頁請求超時控制、前端性能優化和遊戲開發。 - 提高應用程式的可靠性和用戶體驗,確保操作不會花費過長的時間。 - 文章內
Thumbnail
上週的雙11大家有買東西嗎? 去年雙11購入了tokuto的眼部按摩器TS-183使用滿一年心得分享給大家,希望能幫助跟我一樣眼睛容易酸澀又找不到相關心得文的人~
Thumbnail
連自己都懶得去翻前面1到28天的紀錄😂決定簡單整理這一年秋家發生什麼事,還有那些鄰居和朋友。
2021年底前價格應該會在 112-120之間移動
Thumbnail
電動汽車龍頭 Tesla,正式發布了他們在今年第二季的財報,交出了非常亮眼的成績,無論是在營收,或者是獲利上,都超過了市場上的分析師預期,也讓盤後特斯拉的股價上漲了 1%。當然,作為市場上最熱門的股票之一,特斯拉的營運狀況是非常多人關注的焦點,所以就讓科技巨頭解碼來帶大家看特斯拉最新一季的財報重點。