如何在javascript中暂停函数,直到满足条件,而不是设置定义的毫秒限制!

如何在javascript中暂停函数,直到满足条件,而不是设置定义的毫秒限制!,javascript,jquery,pausing-execution,Javascript,Jquery,Pausing Execution,这件事很紧急,我找不到解决办法。问题如下: 我正在设计一个web应用程序,它向多台机器发送多个命令。现在,我的一些命令需要额外的输入。我在jquery中设计了一个弹出窗口,要求用户添加这个额外的输入。 问题是,在所有命令之间循环时,只会弹出最后一个选定命令的窗口。。。这是因为当用户在输入另一个命令之前输入输入时,它不会暂停 如何暂停函数在javascript/jquery中继续执行 伪代码中的一个示例: loop each command { for selected command pop

这件事很紧急,我找不到解决办法。问题如下:

我正在设计一个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..

}
谢谢你的帮助和耐心,我尝试了各种方法,但没有任何结果。
:)

简而言之,您不能“暂停”Javascript执行。如果它足够好地模拟了暂停,您可以做类似的事情,但这不是同一件事

var answer;

var myInterval = setInterval(function () {
  if (answer != undefined) {
    clearInterval(myInterval);
    // processing code
  }
}, 1000);

answer = prompt("Please enter your name.");

简而言之,您不能“暂停”Javascript执行。如果它足够好地模拟了暂停,您可以做类似的事情,但这不是同一件事

var answer;

var myInterval = setInterval(function () {
  if (answer != undefined) {
    clearInterval(myInterval);
    // processing code
  }
}, 1000);

answer = prompt("Please enter your name.");

您不能使用
提示符
对话框获取用户输入吗?它是模态的,除非用户取消提示或提供值,否则将在放置它的位置暂停执行。请不要说它丑陋

var userValue = prompt("Ask your question");

看。请稍等片刻,然后输入值或取消,并注意时间戳。

是否可以使用
提示对话框获取用户输入?它是模态的,除非用户取消提示或提供值,否则将在放置它的位置暂停执行。请不要说它丑陋

var userValue = prompt("Ask your question");

看。请稍等片刻,然后输入值或取消,并注意时间戳。

这通常使用回调函数完成。由于您已经在使用jQuery,您可能会发现类似插件的东西很有用。它允许您对回调进行模态提示

类似于(部分基于上面链接中的示例9)。我将此作为演示发布在

var ind=0;
var值=[];
var计数=3;
函数nextPrompt(完成)
{
函数processPrompt(v、m、f)
{
如果(v!=未定义)
{
var输入=f.alertName;
数值[ind]=输入;
}
如果(++ind';
$.prompt(txt{
回调:processPrompt,
纽扣:{嘿,你好,再见,再见}
});
}
nextPrompt(函数()
{
对于(变量i=0;i
这通常使用回调函数完成。由于您已经在使用jQuery,您可能会发现类似插件的东西很有用。它允许您对回调进行模态提示

类似于(部分基于上面链接中的示例9)。我将此作为演示发布在

var ind=0;
var值=[];
var计数=3;
函数nextPrompt(完成)
{
函数processPrompt(v、m、f)
{
如果(v!=未定义)
{
var输入=f.alertName;
数值[ind]=输入;
}
如果(++ind';
$.prompt(txt{
回调:processPrompt,
纽扣:{嘿,你好,再见,再见}
});
}
nextPrompt(函数()
{
对于(变量i=0;i
如果我理解正确,我认为您应该使用window.showModalDialog()而不是window.open()启动窗口。
它将保持执行,直到对话框关闭


另一种方法是使用回调函数。

如果我理解正确,我认为应该使用window.showModalDialog()而不是window.open()启动窗口。
它将保持执行,直到对话框关闭


另一种方法是使用回调函数。

发布现有代码。发布现有代码。“请不要称之为丑陋”。为什么不呢?它是。它对调试很有用,但它几乎不适用于生产代码。@Matthew-大多数浏览器都有相当高级的调试功能,因此在这个领域中,“提示”实际上是无用的。为什么它不适合生产代码?它使您的代码保持简单。非常适合字符串输入。在输入控件上具有自动对焦功能,并且常规快捷方式(Esc/Enter)按预期工作。并非所有的生产级应用程序都是为了美观而构建的。上面所有的几点都表明它非常有用,在调试和早期开发期间提供输入显然非常有用。我只是觉得它不适合大多数生产应用程序。有一些解决方案具有您列出的功能,等等。“提示”除了“漂亮”之外还有一些限制,比如一次只允许一个字段。@Matthew-我同意它不是适合所有情况的解决方案,但对于用户必须输入某个值才能发生某件事并且必须是模态的这种特殊情况,我觉得这是一个非常合理的选择。你可以看到一个类似于你在这里发布的例子——“请不要说它丑陋。”为什么不呢?它是。它对调试很有用,但它几乎不适用于生产代码。@Matthew-大多数浏览器都有相当高级的调试功能,因此在这个领域中,“提示”实际上是无用的。为什么它不适合生产代码?它使您的代码保持简单。非常适合字符串输入。在输入控件上具有自动对焦功能,并且常规快捷方式(Esc/Enter)按预期工作。并非所有生产级应用程序都是bu