# immediate 中文文档

规范地址：https://npmcn.com/package/immediate/

版本：3\.3\.0
npm 元数据更新时间：2022-06-19T00:46:31.412Z
中文译文更新时间：2026-11-05T16:15:29.912Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/immediate
原文对照：https://npmcn.com/package/immediate/?lang=original
项目主页：https://github.com/calvinmetcalf/immediate#readme
源码仓库：https://github.com/calvinmetcalf/immediate

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：21 kB，15 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2013-09-17T15:57:43.413Z
- 最新版本发布：2020-06-09T14:46:51.597Z
- 近 30 天下载量：230482321（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：31（近 12 个月 0 个）

## 中文简介

跨浏览器微任务库

## 安装

```sh
npm install immediate
```

也可以使用：`pnpm add immediate`、`yarn add immediate`、`bun add immediate`

## README

# 即时 [![Build Status](https://travis-ci.org/calvinmetcalf/immediate.svg?branch=master)](https://travis-ci.org/calvinmetcalf/immediate)

[![testling status](https://ci.testling.com/calvinmetcalf/immediate.png)](https://ci.testling.com/calvinmetcalf/immediate)

```
npm install immediate --save
```

接下来

```js
var immediate = require("immediate");

immediate(function () {
  // this will run soon
});

immediate(function (arg1, arg2) {
  // get your args like in iojs
}, thing1, thing2);
```

## 导言

**即时** 是一个微任务库,从 [诺贝尔JS的设定即时](https://github.com/NobleJS/setImmediate),但包括来自 [库乔何时](https://github.com/cujojs/when) 财务报告和审定财务报表 [RSVP 软件](https://github.com/tildeio/rsvp.js)。 。 。 .

立即从 setImmediate 和 RSVP 中取出诡计,并将其与被激发(vaguely)的排程器结合到时间.

注意版2.6.5和之前严格地说是一个“宏任务”库,而不是一个微型任务库, [看这个区别](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks)如果您需要一个宏任务库, [我掩护你](https://github.com/calvinmetcalf/macrotask)。 。 。 .

3.1.0和3.2.0版本增加了几个新特征,以保持与《公约》和《京都议定书》 process.nextTick,但3.0.x系列仍然在不断更新,如果您需要的话 小裸骨版本

## 诡计

### `process.nextTick`

注意,我们检查 _实际数_ 节点.js 环境,而不是像由浏览器或类似器生成的环境那样的被模拟.

### `queueMicrotask`

当前主要浏览器中可用的函数,您可以用来将一个函数添加到由 V8 管理的微任务队列中.

### `MutationObserver`

这就是 [RSVP 软件](https://github.com/tildeio/rsvp.js) 使用,非常快,细节 [MDN 数据](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)。 。 。 .

### `MessageChannel`

很遗憾, `postMessage` 网络工人内部有完全不同的语义, 所以不能在那里使用。 所以我们 转向 [`MessageChannel`](http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging),它有更糟糕的浏览器支持,但确实在网络工人内部工作.

### `<script> onreadystatechange`

最后一招,我们抽出一些东西 让东西在互联网探索6到8版本:, 创建一个 `<script>` 并启动我们的呼叫 `onreadystatechange` 活动。 这将在未来执行 转动事件循环,速度也快于 `setTimeout(…, 0)`嘿,为什么不呢?

## 我们不用的花招

### `setImmediate`

我们避免使用 `setImmediate` 因为节点 `process.nextTick` 更适合我们的需要。 此外,因特网探索者10号实施 `setImmediate` 断了.

## 参考和阅读

-   [高效脚本 Yielding W3C 编辑器草稿](https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html)
-   [介绍规格的 W3C 邮件列表](http://lists.w3.org/Archives/Public/public-web-perf/2011Jun/0100.html)
-   [IE 测试驱动演示](http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html)
-   [Nicholas C. Zakas的介绍博客文章](http://www.nczonline.net/blog/2011/09/19/script-yielding-with-setimmediate/)
-   我写了一些关于这个的博客文章, [第1编](http://calvinmetcalf.com/post/61672207151/setimmediate-etc) 财务报告和审定财务报表 [第二编](http://calvinmetcalf.com/post/61761231881/javascript-schedulers)

## 常见问题

### immediate 是什么？

跨浏览器微任务库

### 如何安装 immediate？

在项目目录运行 npm install immediate，或使用 pnpm add / yarn add / bun add。

### immediate 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/immediate 是否存在。

### immediate 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### immediate 可以商用吗？

immediate 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### immediate 的下载量有多少？

根据 npm 官方下载统计，immediate 在 2026/10/05 – 2026/11/03 这 30 天内被下载 230,482,321 次，日均约 7,682,744 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### immediate 还在维护吗？

最新版本 3\.3\.0 发布于 2020/06/09（6 年前）；至今共发布 31 个版本，其中过去 12 个月发布了 0 个；首次发布于 2013/09/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

