Support for import defer
TL;DR
ECMASCriptのimport defer構文をサポートした。
import defer * as feature from "./some-feature.js"
Overview
deferの構文が評価された時点では、まだ実行されない。 機能にアクセスした時点で実行される。
import defer * as feature from "...";
// ここでは副作用は発生しない
// このタイミングで副作用が発生する
feature.specialContent;
そのため名前付きインポートやデフォルトインポートは利用できない。
// Not allowed
import defer { doSomething } from "some-module";
import defer defaultExport from "some-module";
deferはネットワークからの読み込みを遅延させるものではない。 defer構文を評価した時点で読み込みは発生する。 defer構文によってアクセスするまで実行が遅延される。
// ネットワークからの読み込み
import defer * as feature from "...";
// 実行
feature.specialContent;
Usage
deferはdownleveled(古いバージョンのECMAScriptへの変換)がされない。 ランタイム環境でdeferをサポートしている必要があり、--moduleモードのpreserveとesnextで使用できる。
Last updated