2012-02-27 20:09:33 +01:00
|
|
|
# Global Objects
|
|
|
|
|
2017-01-23 04:16:21 +01:00
|
|
|
<!--introduced_in=v0.10.0-->
|
2012-02-27 20:09:33 +01:00
|
|
|
<!-- type=misc -->
|
2010-10-28 14:18:16 +02:00
|
|
|
|
2017-06-28 18:14:23 +02:00
|
|
|
These objects are available in all modules. The following variables may appear
|
|
|
|
to be global but are not. They exist only in the scope of modules, see the
|
|
|
|
[module system documentation][]:
|
|
|
|
|
|
|
|
- [`__dirname`][]
|
|
|
|
- [`__filename`][]
|
|
|
|
- [`exports`][]
|
|
|
|
- [`module`][]
|
|
|
|
- [`require()`][]
|
2010-10-28 14:18:16 +02:00
|
|
|
|
2016-05-20 19:40:17 +02:00
|
|
|
The objects listed here are specific to Node.js. There are a number of
|
|
|
|
[built-in objects][] that are part of the JavaScript language itself, which are
|
|
|
|
also globally accessible.
|
|
|
|
|
2012-03-04 08:38:52 +01:00
|
|
|
## Class: Buffer
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.1.103
|
|
|
|
-->
|
2012-02-27 20:09:33 +01:00
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
2012-03-04 08:38:52 +01:00
|
|
|
* {Function}
|
2011-07-15 22:11:14 +02:00
|
|
|
|
2015-11-28 00:30:32 +01:00
|
|
|
Used to handle binary data. See the [buffer section][].
|
2011-04-19 01:52:53 +02:00
|
|
|
|
2016-01-21 22:55:55 +01:00
|
|
|
## \_\_dirname
|
2012-04-17 07:15:51 +02:00
|
|
|
|
2017-06-28 18:14:23 +02:00
|
|
|
This variable may appear to be global but is not. See [`__dirname`].
|
2013-04-29 07:10:24 +02:00
|
|
|
|
2016-01-21 22:55:55 +01:00
|
|
|
## \_\_filename
|
2016-12-29 23:11:02 +01:00
|
|
|
|
2017-06-28 18:14:23 +02:00
|
|
|
This variable may appear to be global but is not. See [`__filename`].
|
2011-04-12 01:48:18 +02:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
## clearImmediate(immediateObject)
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.9.1
|
|
|
|
-->
|
2015-11-04 18:12:06 +01:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
<!--type=global-->
|
|
|
|
|
|
|
|
[`clearImmediate`] is described in the [timers][] section.
|
|
|
|
|
|
|
|
## clearInterval(intervalObject)
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.0.1
|
|
|
|
-->
|
2015-11-04 18:12:06 +01:00
|
|
|
|
|
|
|
<!--type=global-->
|
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
[`clearInterval`] is described in the [timers][] section.
|
2015-11-04 18:12:06 +01:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
## clearTimeout(timeoutObject)
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.0.1
|
|
|
|
-->
|
2016-03-22 00:03:41 +01:00
|
|
|
|
|
|
|
<!--type=global-->
|
2015-11-04 18:12:06 +01:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
[`clearTimeout`] is described in the [timers][] section.
|
2015-11-04 18:12:06 +01:00
|
|
|
|
|
|
|
## console
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.1.100
|
|
|
|
-->
|
2015-11-04 18:12:06 +01:00
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
* {Object}
|
|
|
|
|
2015-11-28 00:30:32 +01:00
|
|
|
Used to print to stdout and stderr. See the [`console`][] section.
|
2015-11-04 18:12:06 +01:00
|
|
|
|
|
|
|
## exports
|
2010-10-28 14:18:16 +02:00
|
|
|
|
2017-06-28 18:14:23 +02:00
|
|
|
This variable may appear to be global but is not. See [`exports`].
|
2010-10-28 14:18:16 +02:00
|
|
|
|
2015-11-04 18:12:06 +01:00
|
|
|
## global
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.1.27
|
|
|
|
-->
|
2010-10-28 14:18:16 +02:00
|
|
|
|
2015-11-04 18:12:06 +01:00
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
* {Object} The global namespace object.
|
2011-04-12 01:48:18 +02:00
|
|
|
|
2017-04-26 19:16:12 +02:00
|
|
|
In browsers, the top-level scope is the global scope. This means that
|
|
|
|
within the browser `var something` will define a new global variable. In
|
|
|
|
Node.js this is different. The top-level scope is not the global scope;
|
|
|
|
`var something` inside a Node.js module will be local to that module.
|
2010-10-28 14:18:16 +02:00
|
|
|
|
2012-02-27 20:09:33 +01:00
|
|
|
## module
|
|
|
|
|
2017-06-28 18:14:23 +02:00
|
|
|
This variable may appear to be global but is not. See [`module`].
|
2012-02-23 09:18:17 +01:00
|
|
|
|
2015-11-04 18:12:06 +01:00
|
|
|
## process
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.1.7
|
|
|
|
-->
|
2015-11-04 18:12:06 +01:00
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
* {Object}
|
|
|
|
|
2015-11-28 00:30:32 +01:00
|
|
|
The process object. See the [`process` object][] section.
|
2015-11-04 18:12:06 +01:00
|
|
|
|
2018-09-19 17:33:52 +02:00
|
|
|
## queueMicrotask(callback)
|
|
|
|
<!-- YAML
|
2018-10-03 01:01:19 +02:00
|
|
|
added: v11.0.0
|
2018-09-19 17:33:52 +02:00
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
* `callback` {Function} Function to be queued.
|
|
|
|
|
|
|
|
The `queueMicrotask()` method queues a microtask to invoke `callback`. If
|
2018-10-21 05:08:41 +02:00
|
|
|
`callback` throws an exception, the [`process` object][] `'uncaughtException'`
|
|
|
|
event will be emitted.
|
2018-09-19 17:33:52 +02:00
|
|
|
|
2018-10-26 00:52:12 +02:00
|
|
|
The microtask queue is managed by V8 and may be used in a similar manner to
|
2019-01-21 17:47:34 +01:00
|
|
|
the [`process.nextTick()`][] queue, which is managed by Node.js. The
|
2018-10-26 00:52:12 +02:00
|
|
|
`process.nextTick()` queue is always processed before the microtask queue
|
|
|
|
within each turn of the Node.js event loop.
|
2018-09-19 17:33:52 +02:00
|
|
|
|
|
|
|
```js
|
|
|
|
// Here, `queueMicrotask()` is used to ensure the 'load' event is always
|
|
|
|
// emitted asynchronously, and therefore consistently. Using
|
|
|
|
// `process.nextTick()` here would result in the 'load' event always emitting
|
|
|
|
// before any other promise jobs.
|
|
|
|
|
|
|
|
DataHandler.prototype.load = async function load(key) {
|
|
|
|
const hit = this._cache.get(url);
|
|
|
|
if (hit !== undefined) {
|
|
|
|
queueMicrotask(() => {
|
|
|
|
this.emit('load', hit);
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const data = await fetchData(key);
|
|
|
|
this._cache.set(url, data);
|
|
|
|
this.emit('load', data);
|
|
|
|
};
|
|
|
|
```
|
|
|
|
|
2015-11-04 18:12:06 +01:00
|
|
|
## require()
|
|
|
|
|
2017-06-28 18:14:23 +02:00
|
|
|
This variable may appear to be global but is not. See [`require()`].
|
2012-07-01 20:09:55 +02:00
|
|
|
|
2016-08-30 07:35:03 +02:00
|
|
|
## setImmediate(callback[, ...args])
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.9.1
|
|
|
|
-->
|
2012-07-01 20:09:55 +02:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
[`setImmediate`] is described in the [timers][] section.
|
2012-07-01 20:09:55 +02:00
|
|
|
|
2016-08-30 07:35:03 +02:00
|
|
|
## setInterval(callback, delay[, ...args])
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.0.1
|
|
|
|
-->
|
2012-07-01 20:09:55 +02:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
<!-- type=global -->
|
2012-07-01 20:09:55 +02:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
[`setInterval`] is described in the [timers][] section.
|
2012-07-01 20:09:55 +02:00
|
|
|
|
2016-08-30 07:35:03 +02:00
|
|
|
## setTimeout(callback, delay[, ...args])
|
2016-10-03 10:49:29 +02:00
|
|
|
<!-- YAML
|
|
|
|
added: v0.0.1
|
|
|
|
-->
|
2011-04-01 18:19:00 +02:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
<!-- type=global -->
|
2012-06-06 21:05:18 +02:00
|
|
|
|
2016-03-22 00:03:41 +01:00
|
|
|
[`setTimeout`] is described in the [timers][] section.
|
2015-11-14 04:21:49 +01:00
|
|
|
|
2018-08-12 20:55:13 +02:00
|
|
|
## TextDecoder
|
|
|
|
<!-- YAML
|
2018-10-03 01:01:19 +02:00
|
|
|
added: v11.0.0
|
2018-08-12 20:55:13 +02:00
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
The WHATWG `TextDecoder` class. See the [`TextDecoder`][] section.
|
|
|
|
|
|
|
|
## TextEncoder
|
|
|
|
<!-- YAML
|
2018-10-03 01:01:19 +02:00
|
|
|
added: v11.0.0
|
2018-08-12 20:55:13 +02:00
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
The WHATWG `TextEncoder` class. See the [`TextEncoder`][] section.
|
|
|
|
|
|
|
|
|
2018-01-21 17:11:47 +01:00
|
|
|
## URL
|
|
|
|
<!-- YAML
|
2018-03-02 18:53:46 +01:00
|
|
|
added: v10.0.0
|
2018-01-21 17:11:47 +01:00
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
The WHATWG `URL` class. See the [`URL`][] section.
|
|
|
|
|
|
|
|
## URLSearchParams
|
|
|
|
<!-- YAML
|
2018-03-02 18:53:46 +01:00
|
|
|
added: v10.0.0
|
2018-01-21 17:11:47 +01:00
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
The WHATWG `URLSearchParams` class. See the [`URLSearchParams`][] section.
|
|
|
|
|
2018-10-08 22:22:48 +02:00
|
|
|
## WebAssembly
|
|
|
|
<!-- YAML
|
|
|
|
added: v8.0.0
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- type=global -->
|
|
|
|
|
|
|
|
* {Object}
|
|
|
|
|
|
|
|
The object that acts as the namespace for all W3C
|
|
|
|
[WebAssembly][webassembly-org] related functionality. See the
|
|
|
|
[Mozilla Developer Network][webassembly-mdn] for usage and compatibility.
|
|
|
|
|
2018-11-27 20:49:21 +01:00
|
|
|
[`TextDecoder`]: util.html#util_class_util_textdecoder
|
|
|
|
[`TextEncoder`]: util.html#util_class_util_textencoder
|
|
|
|
[`URLSearchParams`]: url.html#url_class_urlsearchparams
|
|
|
|
[`URL`]: url.html#url_class_url
|
2017-06-28 18:14:23 +02:00
|
|
|
[`__dirname`]: modules.html#modules_dirname
|
|
|
|
[`__filename`]: modules.html#modules_filename
|
2016-07-09 07:13:09 +02:00
|
|
|
[`clearImmediate`]: timers.html#timers_clearimmediate_immediate
|
|
|
|
[`clearInterval`]: timers.html#timers_clearinterval_timeout
|
|
|
|
[`clearTimeout`]: timers.html#timers_cleartimeout_timeout
|
2017-05-08 18:30:13 +02:00
|
|
|
[`console`]: console.html
|
2017-06-28 18:14:23 +02:00
|
|
|
[`exports`]: modules.html#modules_exports
|
|
|
|
[`module`]: modules.html#modules_module
|
2019-01-21 17:47:34 +01:00
|
|
|
[`process.nextTick()`]: process.html#process_process_nexttick_callback_args
|
2017-05-08 18:30:13 +02:00
|
|
|
[`process` object]: process.html#process_process
|
2019-01-05 23:44:49 +01:00
|
|
|
[`require()`]: modules.html#modules_require_id
|
2016-08-30 07:35:03 +02:00
|
|
|
[`setImmediate`]: timers.html#timers_setimmediate_callback_args
|
|
|
|
[`setInterval`]: timers.html#timers_setinterval_callback_delay_args
|
|
|
|
[`setTimeout`]: timers.html#timers_settimeout_callback_delay_args
|
2017-05-08 18:30:13 +02:00
|
|
|
[buffer section]: buffer.html
|
2016-05-20 19:40:17 +02:00
|
|
|
[built-in objects]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
|
2017-05-08 18:30:13 +02:00
|
|
|
[module system documentation]: modules.html
|
|
|
|
[timers]: timers.html
|
2018-10-08 22:22:48 +02:00
|
|
|
[webassembly-mdn]: https://developer.mozilla.org/en-US/docs/WebAssembly
|
|
|
|
[webassembly-org]: https://webassembly.org
|