node中自带的包
- events事件发射器
- http 创建一个服务
- global对象 默认this是空对象与global不同 __filename __dirname
- process对象 常用 process.cwd() process.env process.stdout.write(data): 将数据写入标准输出流(通常是控制台)。process.stderr.write(data): 将数据写入标准错误流
- path 提供了对路径的处理方法
- Buffer alloc创建Buffer对象 from将类似数组转换成Buffer toString 类数组读取
- file fs中的readFile、writeFile、appendFile、copyFile、watchFile open close fs.stat() fs.rmdir()删除文件 用promisify()函数将其处理成async风格
- stream pipe方法实现流之间的数据传输
rs.pipe(ws)
,从可读流中读写数据传入到可写流中 Readable Writable 监听不同的事件来处理流的各种状态和行为 文件流
事件执行机制
-
同步任务执行阶段(Synchronous Execution):首先执行主线程上的同步任务,包括执行 JavaScript 代码、执行 DOM 操作等。
-
微任务执行阶段(Microtask Execution):在同步任务执行完毕后,会立即执行所有微任务。微任务包括 Promise 的 then() 方法注册的回调函数、MutationObserver 的回调函数等。
-
宏任务执行阶段(Macrotask Execution):在执行完所有微任务后,会选择执行宏任务。常见的宏任务包括 setTimeout、setInterval、setImmediate(Node.js 环境)、requestAnimationFrame(浏览器环境)、I/O 操作、UI 渲染等。在宏任务执行期间,可能会有新的微任务产生,它们会被添加到微任务队列中,在宏任务执行完毕后立即执行,每执行一个宏任务之后立刻检查微任务队列。
-
更新渲染阶段(Render):如果环境支持并且需要更新渲染,则执行与渲染相关的任务。在浏览器环境中,这涉及到重绘和回流操作,通常会在宏任务执行后立即进行