这些对象在所有模块中都可用。 以下变量可能看起来是全局的,但实际上不是。 它们只存在于模块的作用域中,参见模块系统文档:
此处列出的对象特定于 Node.js。 有些内置对象是 JavaScript 语言本身的一部分,它们也可以全局地访问。
AbortController 类#用于在选定的基于 Promise 的 API 中发出取消信号的实用工具类。
该 API 基于 Web API AbortController。
const ac = new AbortController();
ac.signal.addEventListener('abort', () => console.log('Aborted!'),
{ once: true });
ac.abort();
console.log(ac.signal.aborted); // 打印 true
abortController.abort([reason])#reason <any> 可选的原因,可在 AbortSignal 的 reason 属性中检索。触发中止信号,使 abortController.signal 触发 'abort' 事件。
abortController.signal#AbortSignal 类#AbortSignal 用于在调用 abortController.abort() 方法时通知观察者。
AbortSignal.abort([reason])#reason: <any>返回新的已中止的 AbortSignal。
AbortSignal.timeout(delay)#delay <number> 触发 AbortSignal 之前等待的毫秒数。返回新的 AbortSignal,其将在 delay 毫秒内中止。
'abort' 事件#当调用 abortController.abort() 方法时,则触发 'abort' 事件。
使用单个对象参数调用回调,该对象具有被设置为 'abort' 的 type 属性:
const ac = new AbortController();
// 使用 onabort 属性...
ac.signal.onabort = () => console.log('aborted!');
// 或者 EventTarget API ...
ac.signal.addEventListener('abort', (event) => {
console.log(event.type); // 打印 'abort'
}, { once: true });
ac.abort();
与 AbortSignal 关联的 AbortController 只会触发一次 'abort' 事件。
建议在添加 'abort' 事件监听器之前代码检查 abortSignal.aborted 属性是否为 false。
任何绑定到 AbortSignal 的事件监听器都应使用 { once: true } 选项(或者,如果使用 EventEmitter API 绑定监听器,则使用 once() 方法)以确保在处理 'abort' 事件后立即删除事件监听器。
不这样做可能会导致内存泄漏。
abortSignal.aborted#AbortController 后为真。abortSignal.onabort#可选的回调函数,可以由用户代码设置,以便当调用 abortController.abort() 函数时得到通知。
abortSignal.reason#当触发 AbortSignal 时指定的可选的原因。
const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason); // Error('boom!');
Buffer 类#用于处理二进制数据。 参阅缓冲区章节。
__dirname#此变量可能看起来是全局的,但实际上不是。
参见 __dirname。
__filename#此变量可能看起来是全局的,但实际上不是。
参见 __filename。
atob(data)#Buffer.from(data, 'base64') 。buffer.atob() 的全局别名。
btoa(data)#buf.toString('base64') 。buffer.btoa() 的全局别名。
clearImmediate(immediateObject)#clearImmediate 在定时器章节进行了描述。
clearInterval(intervalObject)#clearInterval 在定时器章节进行了描述。
clearTimeout(timeoutObject)#clearTimeout 在定时器章节进行了描述。
console#用于打印到标准输出和标准错误。
参阅 console 章节。
Event#Event 类的浏览器兼容的实现。
有关更多详细信息,请参阅 EventTarget 和 Event API。
EventTarget#EventTarget 类的浏览器兼容的实现。
有关更多详细信息,请参阅 EventTarget 和 Event API。
exports#此变量可能看起来是全局的,但实际上不是。
参见 exports。
global#在浏览器中,顶层的作用域是全局作用域。
这意味着在浏览器中,var something 将定义新的全局变量。
在 Node.js 中这是不同的。
顶层作用域不是全局作用域;Node.js 模块内的 var something 将是该模块本地的。
MessageChannel#MessageChannel 类。
有关详细信息,请参阅 MessageChannel。
MessageEvent#MessageEvent 类。
有关详细信息,请参阅 MessageEvent。
MessagePort#MessagePort 类。
有关详细信息,请参阅 MessagePort。
module#此变量可能看起来是全局的,但实际上不是。
参见 module。
performance#process#进程对象。
参阅 process 对象章节。
queueMicrotask(callback)#callback <Function> 要排队的函数。queueMicrotask() 方法将微任务排队以调用 callback。
如果 callback 抛出异常,则将触发 process 对象的 'uncaughtException' 事件。
微任务队列由 V8 管理,并且可以以类似于 process.nextTick() 队列的方式使用,后者由 Node.js 管理。
在 Node.js 事件循环的每次轮询中,process.nextTick() 队列总是在微任务队列之前处理。
// 在这里,`queueMicrotask()` 用于确保 'load' 事件总是异步地触发,
// 并且因此始终如一。
// 在这里使用 `process.nextTick()` 会导致 'load' 事件
// 总是在任何其他 promise 作业之前触发。
DataHandler.prototype.load = async function load(key) {
const hit = this._cache.get(key);
if (hit !== undefined) {
queueMicrotask(() => {
this.emit('load', hit);
});
return;
}
const data = await fetchData(key);
this._cache.set(key, data);
this.emit('load', data);
};
require()#此变量可能看起来是全局的,但实际上不是。
参见 require()。
setImmediate(callback[, ...args])#setImmediate 在定时器章节进行了描述。
setInterval(callback, delay[, ...args])#setInterval 在定时器章节进行了描述。
setTimeout(callback, delay[, ...args])#setTimeout 在定时器章节进行了描述。
TextDecoder#WHATWG TextDecoder 类。
参阅 TextDecoder 章节。
TextEncoder#WHATWG TextEncoder 类。
参阅 TextEncoder 章节。
URL#WHATWG URL 类。
参阅 URL 章节。
URLSearchParams#WHATWG URLSearchParams 类。
参阅 URLSearchParams 章节。
WebAssembly#该对象充当所有 W3C WebAssembly 相关功能的命名空间。 有关用法和兼容性,请参阅 Mozilla 开发者网络。