WindowsスクリプトホストでJavaScript機能の非同期コールは可能ですか?
-
09-10-2019 - |
質問
Windows Script Host(JScript)環境に単純な機能があると想像してください。
function say(text) {
WScript.Sleep(5000);
WScript.Echo(text);
}
電話することは可能ですか? say()
非同期?
ノート: そのようなブラウザベースのメソッド setInterval()
また setTimeout
WSHでは利用できません。
解決
いいえ、Windowsスクリプトホストは、スクリプトの呼び出し関数を非同期的にサポートしていません。この効果を達成するには、2つのスクリプトを同時に実行する必要があります。
// [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));
他のヒント
私の知る限り、同等のものはありません setTimeout
/ setInterval
Windowsスクリプトホスト(衝撃的に)の下。ただし、見つけることができます この単純な関数キューは、ここで別の答えをキューにしています それをエミュレートするための有用な出発点。基本的に、男がしたこと(彼の名前も「TJ」ですが、私ではありません)は関数キューを作成し、そのメインループをメインメソッドと呼びます。メインループは、ブラウザベースの実装でハートビートをエミュレートします。私は命名を少し変えますが、非常に賢いです。
所属していません StackOverflow