20211221 TIL


Promise.racePromise.raceがあると思っていましたが、これがどこに使われているのか分かりません.すみません、忘れました.Promise.raceは、複数の非同期タスクにおいて、最初に終了した1つのソリューションのみを採用している.これにより、非同期タスクのtimeoutを指定できます.
Promise.race(
  fetch(API_URL), 
  new Promise(
    resolve => setTimeout(() => resolve(new Error()), DELAY)
  )
).then(log);
このように書くとfetchのタイムアウトがDELAYであることを指定でき、DELAYの時間が経過して応答が得られなければ出力エラーとなる.
reqeustIdleCallback
ブラウザのメインスレッド(JavaScriptの実行などを担当)が空の場合、指定したコールバック関数の実行を指示できます.「Prograted Recommendation」は長い間存在していますが、コールバックでDOMを操作しない条件として使用することをお勧めします.windowオブジェクトに含まれるメソッド.
一見、何の役にも立たないと思いますが、特定のタスクの優先度に優先度を下げるときに使います.
この文章から見るとLINE証券は遅延LAZYロード素子のロード方式を使用している.
コードも添付されており,コアはlazy loadingを適用する素子のimport自体を遅らせることである.requestIdleCallback()は、メインスレッドに処理中のタスクがない場合にコールバック関数を実行するため、コールバックの優先度が後回しになる.LINEは、構成部品のロード自体を次の順序に遅らせ、それよりも重要な初期ページレンダリングを前にします.
この文章を書いたYota Suzuki氏によると、この文章で初期ページのLCPが14%ほど減少したという.
いつか私にも書きたいことがある.