CommonJS模块没有设置变量的值?

时间:2017-10-12 07:53:39

标签: javascript node.js module synchronous commonjs

主文件中的init()函数运行正常,但是当我放入一个单独的模块并需要它时,显然它会停止工作。我在控制台中收到此错误

Uncaught TypeError: Failed to set the 'value' property on 'AudioParam': The provided float value is non-finite.

看起来它可能是它的同步问题?我怎么能绕过这个?

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

主js文件:

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

但是当我不使用模块并在If语句中放入相同的initt函数时,它可以正常工作。如果模块依赖于主js文件中的变量,我是否需要在模块中要求我的主jsfile?就像我在initt()模块中调用其他函数一样。这是好习惯吗?这是我第一次使用模块系统。

0 个答案:

没有答案