Javascript 使用setInterval启动两个函数,并立即启动,无延迟
我试图创建一个场景,其中两个(或更多)变量都分配给各自的setInterval对象,每个setInterval对象都有不同的函数和不同的毫秒值。目标是通过启动重复播放两个不同音频文件的功能,在两者之间创造节奏 我目前遇到的问题是: 如果一个设置间隔设置为1000,另一个设置为500,则不会立即启动。毫秒延迟是启动时间的一部分。我想知道如何省略启动时间上的延迟,以便两个函数立即启动,但它们各自保持各自的间隔时间 到目前为止,我提出的“逻辑”是这样的:创建一个函数,立即播放没有毫秒值的音频,然后将另一个函数分配给setInterval,它在下一个“拍”开始播放x个毫秒,以弥补差异。我很好奇这个逻辑是否合理,或者这是否是一个我不知道的“传统”javascript解决方案存在的问题。似乎有一个更简单的方法 我还没有开始编码,尽管我不想在有人已经解决这个问题之前给自己挖个洞Javascript 使用setInterval启动两个函数,并立即启动,无延迟,javascript,audio,Javascript,Audio,我试图创建一个场景,其中两个(或更多)变量都分配给各自的setInterval对象,每个setInterval对象都有不同的函数和不同的毫秒值。目标是通过启动重复播放两个不同音频文件的功能,在两者之间创造节奏 我目前遇到的问题是: 如果一个设置间隔设置为1000,另一个设置为500,则不会立即启动。毫秒延迟是启动时间的一部分。我想知道如何省略启动时间上的延迟,以便两个函数立即启动,但它们各自保持各自的间隔时间 到目前为止,我提出的“逻辑”是这样的:创建一个函数,立即播放没有毫秒值的音频,然后将另
谢谢我避免了设置间隔。相反,我将setTimeout用于以下模式:
function someThing() {
// do something ...
setTimeout(someThing, 2000);
// or do something after setting the timeout ...
}
// either delay the start:
// setTimeout(someThing, 1000);
// or start right away
someThing()
但是,如果您真的想使用setInterval,那么类似的模式也适用:
function someThing(firstTime) {
if (firstTime === true) {
console.log('setting interval for someThing');
setInterval(someThing, 1000);
}
console.log('someThing called');
}
someThing(true);