import.source()
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die Syntax import.source() verhält sich wie die reguläre Syntax import(), führt jedoch zu einem Objekt, das den kompilierten Quellcode des Moduls darstellt. Das Modul wird abgerufen und kompiliert, aber seine Abhängigkeiten werden nicht geladen und es wird nicht gelinkt oder ausgewertet. Es kann später imperativ ausgewertet werden, beispielsweise mithilfe von dynamischem Import oder WebAssembly.instantiate().
Um import.source() zu verwenden, muss das Zielmodul von einem Typ sein, der Source-Phase-Imports unterstützt. Derzeit unterstützen nur WebAssembly-Module Source-Phase-Imports und führen zu WebAssembly.Module-Objekten. JavaScript-Modulquellobjekte werden durch den Vorschlag ECMAScript Module Phase Imports hinzugefügt.
Weitere Informationen zur Semantik von Source-Phase-Imports finden Sie in der Deklarationsform import source.
Syntax
import.source(moduleName)
import.source(moduleName, options)
import.source() ist eine spezielle Syntax (eine „Meta-Eigenschaft“) und keine Methode eines import-Objekts.
Parameter
Siehe import().
Rückgabewert
Gibt ein Promise zurück, das nach dem erfolgreichen Laden und Kompilieren des Moduls mit einem AbstractModuleSource-Objekt erfüllt wird, das den kompilierten Quellcode des Moduls darstellt.
Wie bei regulärem import() wird das Promise abgelehnt, wenn das Modul nicht geladen oder geparst werden kann. Es wird außerdem mit einem SyntaxError abgelehnt, wenn der Modultyp keine Source-Phase-Imports unterstützt. Der Import lädt keine Abhängigkeiten, linkt das Modul nicht und wertet es nicht aus. Daher werden Fehler aus diesen späteren Schritten nicht gemeldet.
Beispiele
>Verwendung von import.source()
const myModuleSource = await import.source("./my-module.wasm");
const instance = await WebAssembly.instantiate(myModuleSource, {
env: { log: console.log },
});
const { exports } = instance;
Spezifikationen
| Spezifikation |
|---|
| Source Phase Imports> # sec-left-hand-side-expressions> |
Browser-Kompatibilität
Siehe auch
- Leitfaden zu JavaScript-Modulen
import()import sourceAbstractModuleSource