簡體   English   中英

JavaScript超時功能-奇怪的行為

[英]Javascript timeOut function - strange behavior

我正在嘗試實現一個簡單的blckjack游戲 ,問題是timeOut函數沒有按我預期的那樣工作。 我寫了一些調試消息來幫助您理解我的意思。 我用兩個詞看到該函數被調用一次,然后由於某種原因退出該函數,程序繼續執行自身,然后重新調諧到timeOut函數...我想要的是暫停程序執行以等待用戶選擇是否要求停止新卡。 先感謝您!

在哪里調用waitForUserInput()方法? 另外,為什么要使用超時來獲取用戶輸入? 為什么不簡單地訂閱鼠標單擊事件?

setTimeout不會停止執行腳本。 它僅用於延遲執行。 調用之后-程序將照常繼續執行,但是在指定的時間之后-作為第一個參數傳遞的函數將被執行。 等待用戶輸入-查看一下click / keyup / keydown等事件。

您不應在JS中執行以下操作。 JS總是單線程,這樣的循環只會凍結您的接口。 在這種情況下,您似乎應該在卡塊上放置onclick事件,並在其中放置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處理程序的按鈕。 並根據單擊的按鈕運行所需的代碼。 現在,我看不到用戶如何對您的程序說說自己的選擇。 如果那是鍵盤命令(按下“ s”而不是停止,則按下“ n”-下一張卡片)-您可以嘗試使用document.onkeyup

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM