Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组传递给回调函数_Javascript_Function_Callback_Arguments - Fatal编程技术网

Javascript 将数组传递给回调函数

Javascript 将数组传递给回调函数,javascript,function,callback,arguments,Javascript,Function,Callback,Arguments,我试图将参数传递给回调函数,它实际上允许传递参数,但是抛出一个随机错误,表示回调函数中的变量未定义 以下是函数: function trackLoader(track) { myPlayer[0] = new Tone.Player("Audio/" + track + ".wav", callBack); } 以下是回调函数: function callBack() { myPlayer[0].loop = true; myPlayer[0].sync(); my

我试图将参数传递给回调函数,它实际上允许传递参数,但是抛出一个随机错误,表示回调函数中的变量未定义

以下是函数:

function trackLoader(track) { 
    myPlayer[0] = new Tone.Player("Audio/" + track + ".wav", callBack);
}
以下是回调函数:

function callBack() {
   myPlayer[0].loop = true;
   myPlayer[0].sync();
   myPlayer[0].start();
}

从上面可以看到,我只想将播放器的索引传递给回调函数。提前感谢,Matt

Tone.Player将调用您的回调函数,但不带参数。你可以给它一个匿名函数,用你想要的索引调用回调函数






PS:我想
Tone.Player
会在出错时回调特殊数据。您一定要检查一下。

我建议将变量设置为全局变量,它应该可以工作,但我不确定这是否是最佳解决方案

var-myPlayer;
功能轨迹加载器(轨迹){
myPlayer[0]=新音调.Player(“音频/”+曲目+“.wav”,回调);
}
函数回调(){
myPlayer[0]。循环=true;
myPlayer[0]。同步();
myPlayer[0]。开始();

}
是什么变量导致了错误?不清楚代码到底在做什么
myPlayer
看起来像上面的全局文件,因此可以访问回调。请使用演示问题的示例更新您的问题,最好是使用堆栈片段(
[]
工具栏按钮;)运行的问题。这取决于
Tone.Player()
调用回调的方式;如果它将
Player
实例绑定到它,只需调用
this.loop=true
如果您共享实际错误,它会有所帮助抱歉,我没有说得足够清楚,上面的代码中没有错误,但是如果我尝试通过回调函数传递参数,我会抛出一个错误。亲爱的downvoter,请解释downvote的原因。OP的当前代码没有出现错误,当他试图以他认为允许他通过索引的方式更改代码时,他遇到了一个错误。您修复了一个从一开始就不存在的错误。
function trackLoader(track) {
   const index = 0;

   myPlayer[index] = new Tone.Player('Audio...wav', () => callBack(index));
}
function callBack(index) {
   myPlayer[index].loop = true;
   myPlayer[index].sync();
   myPlayer[index].start();
}