Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

js
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()

js
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