import.source()
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 repräsentiert. Das Modul wird abgerufen und kompiliert, aber seine Abhängigkeiten werden nicht geladen und es wird nicht verknüpft 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 eine Art sein, die Source-Phase-Importe unterstützt. Derzeit unterstützen nur WebAssembly-Module Source-Phase-Importe und führen zu WebAssembly.Module-Objekten. JavaScript-Modulquellobjekte werden durch den Vorschlag ECMAScript Module Phase Imports hinzugefügt.
Weitere Informationen über die Semantik von Source-Phase-Importen 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 repräsentiert.
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 Source-Phase-Importe nicht unterstützt. Der Import lädt keine Abhängigkeiten, verknüpft oder wertet das Modul nicht aus, sodass Fehler aus diesen späteren Schritten nicht gemeldet werden.
Beispiele
>Verwenden 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
Diese Funktion scheint in keiner Spezifikation definiert zu sein.>Browser-Kompatibilität
Siehe auch
- Leitfaden zu JavaScript-Modulen
import()import sourceAbstractModuleSource