[英]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.