Subj : Switch/Case with inkey() not working
To : All
From : Codefenix
Date : Wed Jan 08 2025 11:36 am
Having an odd problem with a script I'm writing.
Consider the following JS code:
while (!script_exit) {
switch (console.inkey().toUpperCase()) {
case "A":
doThingOne();
break;
case "B":
doThingTwo();
break;
case KEY_ESC:
case "Q":
case "\r":
script_exit = true;
break;
default:
log("switch default"); // hits this every time
}
}
I'm trying to get a single key from the user and let the switch/case block handle accordingly. However, instead of waiting for input, it immediately falls to the default conition (as commented above).
If I change inkey to getkey, it works as expected. I'd prefer to use inkey instead of getkey though, to avoid showing the cursor while waiting for input.
I've used inkey in other scripts with no issue up to now, so I'm puzzled why it isn't working as expected here. What am I missing?