将提示分配给变量时如何跳出无限提示循环

How to get out of an infinite prompt loop when the prompt is assigned to a variable

这是我的代码

function cc() {
  prompt("Choose Character") 
}

function cs() {
 var chars = setTimeout(function(){ cc() }, 3000);
  switch (chars) {
    case "spy":
    selectedspy()
    break;
    case "bulovian soldier":
    selectedbulovian()
    break;
    case "stonian soldier":
    selectedstonian()
    break;
    default:
    cs()
  }
}

它一直卡在再次询问提示的无限循环中。我觉得我犯了一个简单的错误,但我想不出我需要在 google 中输入什么才能得到答案

我相信这就是你想要做的。

function cc() {
  return prompt("Choose Character");
}

function cs() {
  //This will only run the code once, if you wish to have a loop use setInterval()
  setTimeout(function(){      
    var chars = cc(); 

    switch (chars) {
      case "spy":
      selectedspy()
      break;

      case "bulovian soldier":
      selectedbulovian()
      break;

      case "stonian soldier":
      selectedstonian()
      break;

      default:
      cs()
  }

  }, 3000);
}