我在給一個小朋友教編程,在使用javascript/node.js 已經講到條件語句,循環,函數。現在要做一個猜數字的游戲,但我發現readline
模塊只支持異步方式。這意味著我不能采取這樣的邏輯。
while(true){
guess=input(); // 我需要在這裡block
ans=checkGuess(guess); //返回-1,0,1
displayAns(ans);
if(ans===0)break;
}
當然node.js非常強調異步,這意味著我需要在input裡回調checkGuess,在checkGuess裡回調displayAns,而在displayAns裡再回調input——這似乎給剛學編程的小孩過於復雜了。而采用像CPS這樣的技術則更是不太合適這個場合。。。
請問,是否有一種辦法將其改為同步(用第三方庫async/syncasync/node-fibers)?還是有一個更合適的辦法來做這個循環?或者改用網頁上的prompt?還是改用一個編程語言?
就是設計成異步,你又要同步,不用它就同步了
你要想簡單的說明下而不是學習node.js,建個html文件
寫個javascript演示不就行了
var bFlag =true;
var num =0;
function init(){
while(bFlag){
var ret = prompt("請輸入內容!","");
switch(ret){
case "1":
check(1,num++);
break;
case null:
exitGuess(false);
break;
default:
break;
}
}
}
function exitGuess(b){
bFlag =b;
}
function check(code,num){
//code means choose first
//num means the answer
alert("This answer num is: "+num+"\r\nYou choose: "+code+" \r\nYou are smart.");
}