Node.js v16.9.1 文档


目录

global 全局变量#

中英对照

这些对象在所有模块中都可用。 以下变量可能看起来是全局的,但实际上不是。 它们只存在于模块的作用域中,参见模块系统文档

此处列出的对象特定于 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()#

中英对照

触发中止信号,使 abortController.signal 触发 'abort' 事件。

abortController.signal#

AbortSignal#

中英对照

AbortSignal 用于在调用 abortController.abort() 方法时通知观察者。

AbortSignal.abort()#

中英对照

返回新的已中止的 AbortSignal

'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#

中英对照

  • 类型: <boolean> 中止 AbortController 后为真。
abortSignal.onabort#

中英对照

可选的回调函数,可以由用户代码设置,以便当调用 abortController.abort() 函数时得到通知。

Buffer#

中英对照

用于处理二进制数据。 参阅缓冲区章节

__dirname#

中英对照

此变量可能看起来是全局的,但实际上不是。 参见 __dirname

__filename#

中英对照

此变量可能看起来是全局的,但实际上不是。 参见 __filename

atob(data)#

中英对照

稳定性: 3 - 旧版. 改为使用 Buffer.from(data, 'base64')

buffer.atob() 的全局别名。

btoa(data)#

中英对照

稳定性: 3 - 旧版. 改为使用 buf.toString('base64')

buffer.btoa() 的全局别名。

clearImmediate(immediateObject)#

中英对照

clearImmediate定时器章节进行了描述。

clearInterval(intervalObject)#

中英对照

clearInterval定时器章节进行了描述。

clearTimeout(timeoutObject)#

中英对照

clearTimeout定时器章节进行了描述。

console#

中英对照

用于打印到标准输出和标准错误。 参阅 console 章节。

Event#

中英对照

Event 类的浏览器兼容的实现。 有关更多详细信息,请参阅 EventTargetEvent API

EventTarget#

中英对照

EventTarget 类的浏览器兼容的实现。 有关更多详细信息,请参阅 EventTargetEvent API

exports#

中英对照

此变量可能看起来是全局的,但实际上不是。 参见 exports

global#

中英对照

  • <Object> 全局的命名空间对象。

在浏览器中,顶层的作用域是全局作用域。 这意味着在浏览器中,var something 将定义新的全局变量。 在 Node.js 中这是不同的。 顶层作用域不是全局作用域;Node.js 模块内的 var something 将是该模块本地的。

MessageChannel#

中英对照

MessageChannel 类。 有关详细信息,请参阅 MessageChannel

MessageEvent#

中英对照

MessageEvent 类。 有关详细信息,请参阅 MessageEvent

MessagePort#

中英对照

MessagePort 类。 有关详细信息,请参阅 MessagePort

module#

中英对照

此变量可能看起来是全局的,但实际上不是。 参见 module

performance#

中英对照

perf_hooks.performance 对象。

process#

中英对照

进程对象。 参阅 process 对象章节。

queueMicrotask(callback)#

中英对照

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 开发者网络