您的位置:首页 > Web前端 > JavaScript

javascript超时调用和间歇调用

2017-10-15 17:29 369 查看
超时调用

setTimeout(function () {
console.log("hello");
},2000);


JavaScript是单线程解析器,一定时间内只执行一段代码。为了控制代码的执行,有一个JavaScript任务队列。这些任务会按照添加到任务队列的顺序执行。setTimeout()告诉JavaScript再过多长时间把当前任务添加到队列中。如果队列是空的,则添加的代码会立即被执行;如果队列不为空,就要等前面的代码被执行完了再执行。

取消超时调用

var timeoutId = setTimeout(function () {
console.log("hello");
},2000);
clearTimeout(timeoutId);


间歇调用

setInterval(function () {
console.log("hello world");
},1000);


也会返回一个id,可通过clearInterval(intervalId)取消

var num = 0;
var max = 10;
var intervalId = null;

function incrementNum() {
num++;
console.log(num);
if(num==max){
clearInterval(intervalId);
console.log("done");
}
}
intervalId = setInterval(incrementNum,500);


输出

1
2
3
4
5
6
7
8
9
10
done


使用timeout实现上面的逻辑

var num = 0;
var max = 10;

function incrementNum() {
num++;
console.log(num);
if(num < max){
setTimeout(incrementNum,500);
}
}
setTimeout(incrementNum,500);


建议使用超时调用模拟间歇调用,因为后一个间歇调用可能会在前一个间歇调用结束之前启动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: