如何暂停JavaScript中的功能,直到满足条件为止,直到设置了毫秒中的定义限制为止!
-
29-09-2019 - |
题
这是紧迫的,我找不到解决方案。问题如下:
我正在设计一个Web应用程序,该应用将多个命令发送到多个机器。现在,我需要的一些命令需要其他输入。我设计了一个jQuery中的弹出窗口,要求用户添加此附加输入。问题在于,在所有命令中循环循环时,仅弹出了最后一个选择的命令的窗口……这是因为在输入到另一个命令之前,当用户输入输入时,它不会停止。
如何通过在JavaScript/jQuery中继续执行函数?
伪代码中的一个示例:
loop each command
{
for selected command popup windows;
// pause until user finishes input then go to
// next line where any function is processed
function(); //then loop again--> pause --> when user finishes continue to function() etc..
}
THX为您的帮助和耐心,我尝试了各种方法,没有任何结果。 :)
解决方案
如果我正确理解您,我认为您应该使用window.showmodaldialog()而不是window.open()启动窗口。
它将保持执行,直到对话框关闭为止。
另一种方法是使用回调函数。
其他提示
你不能使用 prompt
对话框以获取用户输入?它是模态,会 暂停 除非用户取消提示或提供值,否则在放置时执行。而且请不要称其为丑陋。
var userValue = prompt("Ask your question");
看 示例在这里. 。在输入值或取消之前等待一会儿,并注意时间戳。
这通常是使用回调函数完成的。由于您已经在使用jQuery,因此您可能会发现类似 即兴 插件有帮助。它使您可以通过回调执行模态提示。
类似于(基于示例9的部分基于上述链接)。我在 http://jsfiddle.net/28d3c/2/ .
var ind = 0;
var values = [];
var count = 3;
function nextPrompt(done)
{
function processPrompt(v, m, f)
{
if(v != undefined)
{
var input = f.alertName;
values[ind] = input;
}
if(++ind < count)
{
nextPrompt(done);
}
else
{
done();
}
}
var txt = 'Please enter value ' + ind + ': <br /><input type="text" id="alertName" name="alertName" value="name here" />';
$.prompt(txt,{
callback: processPrompt,
buttons: { Hey: 'Hello', Bye: 'Good Bye' }
});
}
nextPrompt(function()
{
for(var i = 0; i < count; i++)
{
alert(values[i]);
}
});
简短的答案是您不能“暂停” JavaScript执行。您可以做这样的事情,如果它可以很好地暂停暂停,但这不是同一回事。
var answer;
var myInterval = setInterval(function () {
if (answer != undefined) {
clearInterval(myInterval);
// processing code
}
}, 1000);
answer = prompt("Please enter your name.");
不隶属于 StackOverflow