私には機能があります
function Choice(options) {
wait()
function wait(){ // only proceed after a selection is made;
selection = parseInt(selectedchoice);
if (selection < 1){
setTimeout(wait,1000);
console.log("Not chosen yet");
selection = parseInt(selectedchoice);
}
else if (selection == 1 || selection == 2){
// Finding what the user selected
for (var i in options.choices) {
m++
if (m === selection){
//console.log("PICK IS " + i);
pick = i;
break
}
}
console.log(options.choices[pick].condition)
if (selection >= options.choices.length || selection <= 0 || options.choices[pick].condition === false ) {
selection = 0;
//Choice(options);
console.log("Invalid selection");
//USE MAGIC HERE
}
else {
console.log("Valid selection");
}
}
}
}
ユーザーが無効な選択を選択した場合は、そのことを通知し、もう一度選択するために少し戻します。選択を 0 にリセットした後でも、関数 Choice(options) を再度呼び出すと、無限再帰が発生するようです。throw と同じです (ただし、適切な使用方法はわかりません)。
問題は、エラーが発生した場合にプログラムに Choice() 関数を再度実行させる方法です。