Javascript 我可以同时使用setInterval和setTimeout吗?

Javascript 我可以同时使用setInterval和setTimeout吗?,javascript,Javascript,根据这个线程:在同一时间有多个setinterval是可能的 但是,是否可以在同一时间设置setInterval和setTimeout 这不起作用 <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/lib

根据这个线程:在同一时间有多个setinterval是可能的

但是,是否可以在同一时间设置setInterval和setTimeout

这不起作用

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
    $(document).ready(function() {
        init();
    }); 

    function init() {
        $('#startbutton').on('click', handleClick);
    }
</script>   
</head>
<body>
<script>

var playBeep = function () {
var snd = new Audio("beep-7.wav");
snd.play();
}

var handleClick = function () {
    var interval1 = setInterval(updateDisplay, 1); 
    makeIntervals([1,2,3], playBeep);
}

var makeIntervals = function(timeList,callback){
intervals = []
for(i in timeList){
    intervals.push(setTimeout(callback,timeList[i]))
}
return intervals
}

function updateDisplay() {
    var value = parseInt($('#timer').find('.value').text(), 10);
    value++;
    $('#timer').find('.value').text(value);
}

</script>
<button type="button" id="startbutton">Play Beep</button>
<P>
<div id="timer"><span class="value">0</span> ms</div>
<P>

$(文档).ready(函数(){
init();
}); 
函数init(){
$(“#开始按钮”)。在('click',handleClick)上;
}
var playBeep=函数(){
var snd=新音频(“beep-7.wav”);
snd.play();
}
var handleClick=函数(){
var interval1=设置间隔(updateDisplay,1);
MakeInterval([1,2,3],播放蜂鸣音);
}
var makeinterval=函数(时间列表,回调){
间隔=[]
对于(我在时间列表中){
push(setTimeout(回调,timeList[i]))
}
返回间隔
}
函数updateDisplay(){
var value=parseInt($('#timer').find('.value').text(),10);
值++;
$('#timer').find('.value').text(value);
}
播放嘟嘟声

0毫秒


当然可以。不过,请确保您没有太多。

您试过运行它们来亲自查看吗?您可以用很少的代码来尝试“不工作”不是问题描述。@Kai Qing我在添加代码之前意外添加了问题。当我注释掉setInterval时,setTimeout起作用。当我注释掉setTimeout时。setInterval有效。一般来说,一次有多个超时和间隔是绝对可能的。更具体地说,当我把它工作(使用
console.log()
而不是音频的东西,因为我没有你的音频文件)。但请注意,每次单击按钮时,都会创建另一个间隔,而不会清除上一个间隔。而且