Module basic module

Module global

Global objects, base objects that all scripts can access

Object

Buffer

Binary data buffer object, used for data processing of io read and write, see Buffer object.

1
Buffer global.Buffer;

console

Console access object

1
console global.console;

process

Process object

1
process global.process;

Static function

run

Run a script

1 2
static global.run(String fname, Array argv = []);

Call parameters:

  • fname : String, specify the script path to run
  • argv : Array, specify the parameter to be run, this parameter can be obtained using argv in the script

require

Load a module and return the module object, see @ref module for more information

1
static Value global.require(String id);

Call parameters:

  • id : String, specify the name of the module to be loaded

Return result:

  • Value , returns the export object of the loaded module

require can be used to load basic modules and file modules.

The basic module is the module initialized when the sandbox is created. You only need to pass the corresponding id when referencing, such as require(" net ").

The file module is a user-defined module, and a relative path beginning with ./ or ../ must be passed when referencing. File module supports .js, .jsc and. json file.

The file module also supports the package.json format. When the module is a directory structure, require will first query the main in package.json, and if not found, it will try to load index.js, index.jsc or index.json in the path.

If the reference path does not start with ./ or ../ and is not a basic module, require searches for node_modules under the path where the current module is located, and recursively from the upper-level directory.

The basic process is as follows:

%0 start start is_native is internal module? start->is_native resolve path.resolve has_file module exists? resolve->has_file search recursive lookup node_modules from the current path search->has_file load load end end load->end is_native->end Yes is_mod is module? is_native->is_mod No is_mod->search Yes is_abs is absolute? is_mod->is_abs No is_abs->resolve No is_abs->has_file Yes has_file->load Yes has_ext module.js exists? has_file->has_ext No has_ext->load Yes has_package /package.json exists? has_ext->has_package No has_main main exists? has_package->has_main Yes has_index index.js exists? has_package->has_index No has_main->load Yes has_main->has_index No has_index->load Yes has_index->end No

setTimeout

Call the function after the specified time

1 2 3
static Timer global.setTimeout(Function callback, Number timeout = 1, ...args);

Call parameters:

  • callback : Function, specify the callback function
  • timeout : Number, specifies the delay time, in milliseconds. If it exceeds 2^31, execute it immediately.
  • args : ..., additional parameters, passed into the specified callback, optional.

Return result:

  • Timer , returns the timer object

clearTimeout

Clear the specified timer

1
static global.clearTimeout(Value t);

Call parameters:

  • t : Value, specify the timer to be cleared

setInterval

Call the function after every specified time interval

1 2 3
static Timer global.setInterval(Function callback, Number timeout, ...args);

Call parameters:

  • callback : Function, specify the callback function
  • timeout : Number, the time of the specified interval, in milliseconds. If it exceeds 2^31, execute it immediately.
  • args : ..., additional parameters, passed into the specified callback, optional.

Return result:

  • Timer , returns the timer object

clearInterval

Clear the specified timer

1
static global.clearInterval(Value t);

Call parameters:

  • t : Value, specify the timer to be cleared

setHrInterval

The function is called after every specified time interval. This is a high-precision timer that will actively interrupt the running JavaScript script execution timer

1 2 3
static Timer global.setHrInterval(Function callback, Number timeout, ...args);

Call parameters:

  • callback : Function, specify the callback function
  • timeout : Number, the time of the specified interval, in milliseconds. If it exceeds 2^31, execute it immediately.
  • args : ..., additional parameters, passed into the specified callback, optional.

Return result:

  • Timer , returns the timer object

Since the timer of setHrInterval will interrupt the running code to execute the callback, do not modify the data that may affect other modules in the callback function, or call any api function marked as async in the callback, otherwise it will produce unpredictable results. E.g:

1 2 3 4 5 6 7 8 9 10
var timers = require('timers'); var cnt = 0; timers.setHrInterval(() => { cnt++; }, 100); while (cnt < 10); console.error("===============================> done");

In this code, the loop on line 8 will not end because of the change of cnt, because JavaScript will determine that cnt will not be changed during this cycle when optimizing the code.


clearHrInterval

Clear the specified timer

1
static global.clearHrInterval(Value t);

Call parameters:

  • t : Value, specify the timer to be cleared

setImmediate

Execute the callback function immediately in the next free time

1 2
static Timer global.setImmediate(Function callback, ...args);

Call parameters:

  • callback : Function, specify the callback function
  • args : ..., additional parameters, passed into the specified callback, optional.

Return result:

  • Timer , returns the timer object

clearImmediate

Clear the specified timer

1
static global.clearImmediate(Value t);

Call parameters:

  • t : Value, specify the timer to be cleared

GC

Mandatory garbage collection

1
static global.GC();

repl

Enter the interactive mode, you can execute internal commands and codes interactively, which can be referenced only when js is started

1
static global.repl(Array cmds = []);

Call parameters:

  • cmds : Array, supplementary commands

The parameter cmd format is as follows:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[{ cmd: ".test", help: "this is a test", exec: function(argv) { console.log(argv); } }, { cmd: ".test1", help: "this is an other test", exec: function(argv) { console.log(argv); } } ]

Enter the interactive mode, you can execute internal commands and codes interactively, which can be referenced only when js is started

1 2
static global.repl(Stream out, Array cmds = []);

Call parameters:

  • out : Stream , input and output stream object, usually a network connection
  • cmds : Array, supplementary commands

Only one Stream repl is allowed at the same time. When a new Stream repl is created, the previous repl will be closed.

The parameter cmd format is as follows:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[{ cmd: ".test", help: "this is a test", exec: function(argv) { console.log(argv); } }, { cmd: ".test1", help: "this is an other test", exec: function(argv) { console.log(argv); } } ]

Static properties

Master

Worker , Worker host object, only valid in Worker entry script

1
static readonly Worker global.Master;

global

Object, global object

1
static readonly Object new global;

argv

Array, get the running parameters of the current script, start js to get the process startup parameters, and the script executed by run gets the passed parameters

1
static readonly Array global.argv;

__filename

String, current script file name

1
static readonly String global.__filename;

__dirname

String, the directory where the current script is located

1
static readonly String global.__dirname;