2017-10-12 29 views
0

Je suis complètement nouveau dans le JS modulaire et je n'ai jamais utilisé aucun des modèles précédents. J'écris un projet où il y a plus de 400 lignes de code et je veux mieux le gérer en séparant les choses dans différents modules. J'ai choisi d'utiliser les modules commonJS car j'utilise déjà webpack. Maintenant, je frappé légèrement ma première fonction dans un module différent et exporté comme ceci:Module CommonJS renvoyant undefined quand il est appelé

//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; 

dans mon fichier JS I requis Il

var messages = require('./init'); 

et finalement appelé la fonction dans une instruction If où il appartient :

if (!localStorage.getItem("presetsArr") { 
    messages.initt; 

Malheureusement, je me fais Cannot read property 'gain' of undefined dans la console ce qui signifie que le module Init ne sont pas des variables et d'autres choses en cours d'initialisation comme supposé. Quand je remets toute cette fonction sans utiliser les modules commonJS, cela fonctionne très bien. Je sais que cela peut être quelque chose avec le retour des valeurs, mais je ne peux pas mettre la main dessus. Rien ne fonctionne.

Répondre

1

messages.initt() X

messages() √

+0

Maintenant, je ne suis pas le problème non défini, je vous remercie. C'est hors sujet mais je reçois une autre erreur 'Uncaught TypeError: Échec de la définition de la propriété 'value' sur 'AudioParam': La valeur flottante fournie est non-finie.' Peut-elle faire quelque chose avec un problème synchrone de commonjs? Parce que comme je l'ai dit, si je n'utilise pas de modules, tout fonctionne bien. – Limpuls

+0

Parce qu'il n'y a pas de code complet, je ne peux pas garantir ma réponse Je pense que vous pouvez regarder un document de spécifications commun, il peut y avoir des problèmes de portée comme vous voyez, je ne suis pas bon en anglais, j'espère que vous pouvez comprends ce que j'ai dit – zkimyes