Javascript timeOut函数 - 奇怪的行为

时间:2012-09-21 12:18:35

标签: javascript

我试图实现simple blckjack game,问题是timeOut函数没有按预期工作。我写了一些调试信息来帮助你理解我的意思。用两个词我看到的是函数被调用一次,并且由于某种原因它从函数中退出,程序继续执行自己而不是retunrs到timeOut函数... 我想要的是暂停程序执行以等待用户选择是否请求新卡停止。 提前谢谢!

2 个答案:

答案 0 :(得分:0)

调用waitForUserInput()方法在哪里?另外,为什么要使用超时来获取用户输入?为什么不简单地订阅鼠标点击事件?

答案 1 :(得分:0)

setTimeout不会停止执行脚本。这只是为了延迟执行。在你调用它之后 - 程序的执行将照常继续,但是在指定的时间之后 - 作为第一个参数传递的函数将被执行。要等待用户输入 - 请查看click / keyup / keydown等事件。

你不应该在JS中做类似下面的事情。 JS总是单线程,这样的循环只会冻结你的界面。在你的情况下,看起来你应该将onclick事件放在卡块上并放置一个代码来完成你需要的操作。

while(true){
        waitForUserInput();
        if(requestCard){
            userHand.hitMe();

            var userHandCards = userHand.printHand().split(",");
            displayCard(userHandCards[cardIndex]);
            cardIndex++;
            //console.log(">"+userHand.score());

            if(userHand.score()>21){
                break;
            }
        }else{
            break
        }

    };
  

我想要的是暂停程序执行以等待用户选择是否请求新卡停止

您应该使用指定的onclick处理程序放置一些按钮。并根据点击的按钮运行您需要的代码。现在我不知道用户如何对你的选择说出他的选择。如果这是一个keybord命令(“s”按下而不是停止,“n” - 下一张卡) - 你可以尝试使用document.onkeyup