异步函数

4
当调用window.alert()时,脚本不应等待用户输入(例如点击确定),而应继续执行。
我如何在不使用setTimeout()函数的情况下实现这一点?
this.alert('Window')
console.log('Continue here, dont wait for user input on the "Window"')

1
alert is blocking.. Use some custom UI to display alert instead of window.alert - Rayon
你不能在JavaScript中阻塞。 - Daniel A. White
@Faizy 关键词是“模态框”,请查看该主题。 - Thomas
@DanielA.White,试试这个 console.time("alert"); alert("...waiting"); console.timeEnd("alert"); 如果你不能阻塞,测量的持续时间应该小于1毫秒。 - Thomas
@Thomas,你不能阻止除了那些函数之外的任何东西…… - Daniel A. White
不使用 setTimeout?恐怕这也无济于事。 - Salman A
3个回答

2

不可以。JavaScript是单线程的。除非用户输入钩子完成,否则线程会在那里暂停。

你可以通过调整/设置DOM的样式来使其看起来像一个警报框(有点奇怪但也可以接受)。


1

0

由于JavaScript运行在单线程上,alert/prompt/confirm会暂停执行,直到用户响应。

但是有几种方法可以防止这种情况发生: 1. 使用自定义UI而不是浏览器的UI。 2. 使用WebWorkers API。 3. 使用setTimeout/setInterval。 4. 使用requestNextFrame函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接