假设您在Windows主机(JScript)环境中有一个简单的函数:
function say(text) {
WScript.Sleep(5000);
WScript.Echo(text);
}是否可以异步调用say()?
注意:这种基于浏览器的方法,如setInterval()或setTimeout,在WSH中是不可用的.
发布于 2010-12-14 14:36:17
不,Windows脚本主机不支持异步调用脚本函数。为了达到这个效果,您必须同时运行两个脚本:
// [main.js]
var oShell = new ActiveXObject("WScript.Shell");
oShell.Run(WScript.FullName + " say.js Hello");
WScript.Echo("Hello from main");// [say.js]
WScript.Sleep(5000);
WScript.Echo(WScript.Arguments.Item(0));发布于 2010-12-14 14:32:04
据我所知,在Windows (令人震惊的是)下没有与setTimeout / setInterval相媲美的东西。但是,您可能会发现this simple function queue in another answer here on SO是模拟它的一个有用的起点。基本上,这个家伙所做的(他的名字也是"TJ",但不是我)是创建一个函数队列,然后调用它的主循环作为您的主要方法。主循环在基于浏览器的实现中模拟心跳。很聪明,不过我会把名字改一点。
https://stackoverflow.com/questions/4440052
复制相似问题