我试图将一个参数传递给一个回调函数,它实际上允许传递参数但是会抛出一个随机错误,说明回调函数中的变量没有定义。
这是功能:
function trackLoader(track) {
myPlayer[0] = new Tone.Player("Audio/" + track + ".wav", callBack);
}
这是回调函数:
function callBack() {
myPlayer[0].loop = true;
myPlayer[0].sync();
myPlayer[0].start();
}
从上面可以看出,我只想将播放器的索引传递给回调函数。提前谢谢,马特
答案 0 :(得分:1)
Tone.Player会在没有参数的情况下调用你的回调函数。你可以给它一个匿名函数,用你想要的索引来调用回调。
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();
}
PS:我认为Tone.Player
会在出现错误时回调特殊数据。你一定要检查一下。
答案 1 :(得分:-2)
我建议将变量设为全局,它应该可以工作,但我不太确定这将是最好的解决方案。
var myPlayer;
function trackLoader(track) {
myPlayer[0] = new Tone.Player("Audio/" + track + ".wav", callBack);
}
function callBack() {
myPlayer[0].loop = true;
myPlayer[0].sync();
myPlayer[0].start();
}