我正在尝试从用户那里获得五个输入。
我知道在循环中调用函数(就像下面的代码一样)会崩溃,因为所有的prompt()都是同时调用的。
for(var i = 0; i < 5; i++) {
prompt();
}
对此有什么解决方案?我看到其他代码片段使用了“超时”,并在每次函数调用之间设置了等待时间,但是当用户可以花费尽可能多的时间输入提示符时,代码仍然可以工作吗?
发布于 2015-09-24 00:28:57
我知道在循环中调用函数(就像下面的代码)会崩溃,因为所有的
prompt()
都是同时被调用的。
这里不是这样,因为prompt
是一个阻塞函数,就像alert
一样。即迭代(或更确切地说代码执行)仅在提示窗口关闭之后才继续。
您可以将所有值添加到一个数组中,如下所示:
var inputs = [];
for(var i = 0; i < 5; i++) {
inputs.push(prompt());
}
console.log(inputs);
这是不是最好的用户体验是另一个问题……
发布于 2015-09-24 00:35:45
不需要超时,在其余代码执行之前,提示将等待用户输入( ok,cancel),这意味着下一个提示将在单击ok之后出现。超时是唯一有用的,这样人们就不会不小心连续按两次ok并看到提示符的出现。
https://stackoverflow.com/questions/32744783
复制相似问题