aufgerufen wird Ich bin völlig neu in modularen JS und noch nie zuvor das Muster verwendet. Ich schreibe ein Projekt, bei dem es mehr als 400 Zeilen Code gab und ich möchte es besser verwalten, indem ich die Dinge in verschiedene Module auftrenne. Ich habe mich für commonJS-Module entschieden, da ich bereits das Webpack verwende. Jetzt habe ich meine erste Funktion in einem anderen Modul geputtet und exportierte es wie folgt aus:CommonJS-Modul zurückgeben undefiniert, wenn
//init.js file
var initt = function() {
octaveNumber = document.getElementById("octaveNum");
audioCtx = new (window.AudioContext || window.webkitAudioContext);
osc = audioCtx.createOscillator();
volume = audioCtx.createGain();
filter = audioCtx.createBiquadFilter();
osc.connect(filter);
volume.connect(audioCtx.destination);
booleanVal = false;
osc.frequency.value = dial.value
osc.start();
gainDisplay.innerHTML = gainSlider.value;
noteSetOscFreq()
octaveUpClick()
octaveDownClick()
waveFormSelector()
}
module.exports = initt;
in meiner Haupt-JS-Datei erforderlich ich es
var messages = require('./init');
und schließlich die Funktion in einer If-Anweisung aufgerufen, wo es hingehört :
if (!localStorage.getItem("presetsArr") {
messages.initt;
Leider sollte, ich bin Cannot read property 'gain' of undefined
in der Konsole bekommen, was bedeutet, dass Init-Modul ist nicht initialisiert Variablen und andere Dinge, als es. Wenn ich diese ganze Funktion zurücksetze, ohne commonJS-Module zu verwenden, funktioniert es gut. Ich weiß, es könnte etwas mit der Rückgabe der Werte sein, aber ich kann es nicht in die Hand nehmen. Nichts funktioniert.
Nun weiß ich nicht das undefinierte Problem bekommen, danke. Es ist Off-Thema, aber ich bekomme einen anderen Fehler 'Uncaught TypeError: Fehler beim Festlegen der 'Value' -Eigenschaft auf 'AudioParam': Der angegebene Float-Wert ist nicht endlichen. 'Könnte es etwas mit synchronen Problem von commonjs tun? Denn wie ich schon sagte, wenn ich keine Module verwende, funktioniert alles gut. – Limpuls
Da es keinen vollständigen Code gibt, kann ich meine Antwort nicht garantieren Ich denke, dass Sie sich einige Commonjs Spezifikation Dokument anschauen können, kann es Umfang Probleme. wie Sie sehen, ich bin nicht gut in Englisch, hoffe du kannst verstehe, was ich gesagt habe – zkimyes