无法从循环内的 switch 语句接收值

阿林·安德烈

我遇到了这个问题,我创建的循环没有返回值。

这个想法很简单——我需要从一秒到一秒更新我的火车到达了多远。如果达到滚动的秒数,则意味着它正在前往车站的途中,或者正好在车站中。这是我的代码,如下。

谢谢,希望我不会错过这个帖子。

function Train(speed, distance, elapsedTime, eTA, station, condition, type) {
  this.speed = speed;
  this.station = station;
  this.distance = distance;
  this.elapsedTime = elapsedTime;
  this.eTA = eTA;
  this.condition = condition;
  this.type = this.speed == 30 ? 'Regio' : this.speed == 70 ? 'Inter-Regio' : 'Broken'; 
}

var trainOne = new Train(30, '', '', '', '', '', '');
var elapsedTime = 
  function theLoop (elapsedTime) {
    setTimeout (function(){
    switch(elapsedTime){
      case elapsedTime == 0:
        Train().station = 'Station A';
        Train().eTA = 28 - elapsedTime + 'seconds left untill reaching the next station';
        break;

      case elapsedTime < 28:
        Train().station = 'Train left station A';
        Train().eTA = 28 - elapsedTime + 'seconds left untill reaching the next station';
        break;

      case elapsedTime == 28:
        Train().station = 'Station 2';
        Train().eTA = 28 - elapsedTime + 'seconds left untill reaching the next station';
        break;

      case elapsedTime > 28 && elapsedTime < 70:
        Train().station = 'Train left station 2';
        Train().eTA = 70 - elapsedTime + 'seconds left untill reaching the next station';
        break;

      case elapsedTime == 70:
        Train().station = 'Station 3';
        Train().eTA = 84 - elapsedTime + 'seconds left untill reaching the next station';
        break;

      default :
        Train().station = 'Station A';
        Train().eTA = 'No information available yet';
    }
    console.log(trainOne);
    if (++elapsedTime && elapsedTime < 12) {
      theLoop(elapsedTime);
    }
  }, 1000);
} (0);
谢年科·维塔利

尝试另一个:

function Train(speed, distance, elapsedTime, eTA, station, condition, type) {
  this.speed = speed;
  this.station = station;
  this.distance = distance;
  this.elapsedTime = elapsedTime;
  this.eTA = eTA;
  this.condition = condition;
  this.type = this.speed == 30 ? 'Regio' : this.speed == 70 ? 'Inter-Regio' : 'Broken';

  let timerID = null;

  this.run = function() {
    timerID = setInterval((self) => {
      self.elapsedTime++;
      self.distance += speed;
      console.log(`${self.elapsedTime} seconds, distance: ${self.distance}`);
    }, 1000, this);
  }

  this.stop = function() {
    console.log("Stop");
    clearInterval(timerID);
  }

  this.pause = function() {
    clearInterval(timerID);
  }

  this.station = function(name, duration) {
    console.log(`Station ${name}`);

    this.pause();

    setTimeout((self) => {
      console.log(`Live station ${name}`);
      self.run();
    }, duration, this, name);
  }
}

var trainOne = new Train(30, 0, '', 0, '', '', '');

trainOne.run();

setTimeout(() => {
  trainOne.station("A", 5000);
}, 5000);

setTimeout(() => {
  trainOne.station("B", 5000);
}, 15000);

setTimeout(() => {
  trainOne.stop();
}, 30000);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP循环内的switch语句

来自分类Dev

for循环内的PHP switch语句

来自分类Dev

无法将MVC 4中的switch语句放入foreach循环内

来自分类Dev

Switch语句循环遍历

来自分类Dev

Switch语句循环遍历

来自分类Dev

使用 for 循环修复 switch 语句的返回值

来自分类Dev

带哨兵循环的switch语句

来自分类Dev

Switch语句无法正常运行

来自分类Dev

Switch语句无法正常运行

来自分类Dev

Go Golang选择语句无法接收发送的值

来自分类Dev

PHP-使用for循环而不是switch语句

来自分类Dev

如何获取switch语句以循环回到菜单

来自分类Dev

在方法循环中制作switch语句

来自分类Dev

循环中的 switch 语句有问题

来自分类Dev

在Swift中使用Switch语句-括号内是值绑定还是外面是值绑定?

来自分类Dev

switch语句滚动值(JavaScript)

来自分类Dev

在按钮内使用 switch 语句

来自分类Dev

无法使用基于typeof对象的switch语句

来自分类Dev

cin.getline无法使用switch语句

来自分类Dev

switch语句在JavaScript中无法正常工作

来自分类Dev

switch语句中的Switch语句

来自分类Dev

JavaScript-带switch语句的For循环不断循环

来自分类Dev

如何从Android中的随机switch语句接收输出?

来自分类Dev

如何从Android中的随机switch语句接收输出?

来自分类Dev

无法在jQuery中将“ if”语句替换为“ switch”语句

来自分类Dev

无法在非接口值上键入switch

来自分类Dev

带值列表的Groovy Switch语句

来自分类Dev

Javascript Switch语句共享数组值

来自分类Dev

Javascript Switch语句共享数组值