我正在尝试实现看起来像控制台窗口的东西,但是在网页上。我希望每隔一秒左右写一个新的ping ping API。我有:
for (i = 0; i < 5; i++) {
text = httpGet('APICALL' );
document.write(text + '<br>');
sleep(1000);
}
然而,这首先运行所有调用然后写入。我怎么能改变这个?
编辑:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
答案 0 :(得分:2)
你应该使用类似setTimeout的东西,这是一种standard方式:
var sleepTime = 1000;
var i = 0;
setTimeout(function readNextMessage() {
if (i < 5) {
text = httpGet('https://turbine-farm.run.aws-usw02-pr.ice.predix.io/api/turbines/1/heartbeat' );
document.body.innerHTML += text + '<br>';
}
i += 1;
setTimeout(readNextMessage, sleepTime);
}, sleepTime);
您无法 睡眠网页。您的sleep
功能正在执行此操作:
1e7
步骤循环。在现代计算机中,这3个陡峭的地方在不到一秒的时间内完成。