我有一个功能
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");
}
}
}
}
如果用户选择了一个无效的选择,他应该被告知这一点,并稍稍回过头来再次选择。显然再次调用函数 Choice(options),即使将选择重置为 0,也会导致无限递归。与 throw 相同(尽管我不知道如何正确使用它们)。
问题是:如果发生错误,如何让程序再次执行Choice()函数?