2013年10月31日

JavaScriptでsleep

Firefox のスクラッチパッド (chrome有効) で実行してみた
Components.utils.import('resource://gre/modules/ctypes.jsm');

var lib = ctypes.open('kernel32.dll');
var sleep = lib.declare('Sleep', ctypes.winapi_abi, ctypes.void_t, ctypes.uint32_t);

var a = Date.now();
sleep(5000);
var b = Date.now();

lib.close();

[a, b];

/*
a = 1383184940621
b = 1383184945621
*/
ぴったり 5秒でした

これは Windows 環境でできることだけど、Linux だったら
Components.utils.import('resource://gre/modules/ctypes.jsm');

var libc = ctypes.open('libc.so.6');
var sleep = libc.declare('sleep', ctypes.default_abi, ctypes.int, ctypes.int);

sleep(1000);
// ...
こんな感じで同じことできそう (確認してないから違うかも)

0 件のコメント:

コメントを投稿