JavaScript - API调用的类似控制台的输出

时间:2017-07-13 19:11:56

标签: javascript

我正在尝试实现看起来像控制台窗口的东西,但是在网页上。我希望每隔一秒左右写一个新的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;
    }
  }
}

1 个答案:

答案 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功能正在执行此操作:

  1. 进入1e7步骤循环。
  2. 每个步骤都有所不同,并将其与数字进行比较。
  3. 如果比较成立则会中断。
  4. 在现代计算机中,这3个陡峭的地方在不到一秒的时间内完成。