awaitjs文(Ver9.46対応版)
目次−
awaitjs文
awaitjs文は、JavaScriptの
hidemaru.notifyAwaitが呼ばれるまで、マクロの実行を待機します。(V9.39以降)
awaitjsでマクロが終了していない間は、非同期で呼ばれた関数内であっても従来マクロの変数アクセスや、hidemaruGlobalのメソッドを呼ぶことができます。
待機中は、Esc等のキー操作でマクロ実行を中断することが可能です。
- パラメータ1(文字列型)
-
hidemaru.notifyAwaitで使うものと同じ、任意キーワードを指定します。
currentmacrofilename()を使うなど、他のマクロと被らないものにしてください。
- 結果コード
-
resultは0以外になります。
例 |
debuginfo 2;
debuginfo "\n開始\n";
js{
hidemaru.setTimeout(
function(){
console.log("timeout");
hidemaru.notifyAwait("KEYWORD");
}
, 1000 );
}
awaitjs "KEYWORD";
debuginfo "\n終了\n";
endmacro;
|
非同期で呼ばれた関数内で、hidemaruGlobalにあるメソッドを呼ぶ例。
例 |
debuginfo 2;
debuginfo "\n開始\n";
js{
hidemaru.setTimeout(
function(){
console.log("1秒後にメニュー出す");
menu("項目1","項目2","項目3");
console.log("メニュー選んだ");
hidemaru.notifyAwait("KEYWORD");
}
, 1000 );
}
awaitjs "KEYWORD";
debuginfo "\n終了\n";
endmacro;
|
curlの標準入出力を非同期で待つ例。
例 |
debuginfo 2;
debuginfo "\n開始\n";
js{
exe=hidemaru.runProcess("curl.exe https://hide.maruo.co.jp/","","stdio");
exe.stdOut.onReadAll(
function(out){
console.log(out);
hidemaru.notifyAwait("KEYWORD");
}
);
}
awaitjs "KEYWORD";
js{
exe=undefined;
}
debuginfo "\n終了\n";
endmacro;
|
hidemaru.notifyAwait