主文件中的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()模块中调用其他函数一样。这是好习惯吗?这是我第一次使用模块系统。