NodeJs 做了什么 Fundamentals Internals

NodeJs 做了什么

code

node 代码实现

libuv 库代码实现

sync vs async

javascript 复制代码
// sync

console.log('🐰 win!');

console.log('🐢 win!');

 

// async

setTimeout(() => {

console.log('🐰 win!');

},1000)

console.log('🐢 win!');

non-blocking functions 非阻塞函数

async js ?

异步操作

线程 threads

两个线程在执行方面是互相独立的

node is single thread

nodejs 如何实现异步功能的?

event loop + libuv (deal file + network 调用操作系统功能)

Event Loop

顺便提一下 python 和 php 都可支持多线程

什么时候 使用 Node 最好

javascript 复制代码
// 1 base

// const EventEmitter = require('events')

// const celebrity = new EventEmitter()

 

// // 监听

// celebrity.on('race win', () => {

// console.log('you has win best!');

// })

 

// celebrity.on('race fail', () => {

// console.log('can do better!');

// })

 

// // 触发

// celebrity.emit('race win')

// celebrity.emit('race fail')

 

// 2 advantage 传递 参数

const EventEmitter = require('events')

const celebrity = new EventEmitter()

 

celebrity.on('race', (result) => {

if(result === 'win'){

console.log('win your best!');

}

})

 

celebrity.on('race', (result) => {

if(result === 'lost'){

console.log('can do better!');

}

})

 

celebrity.emit('race', 'win')

celebrity.emit('race', 'lost')
相关推荐
世人万千丶14 小时前
Flutter 框架跨平台鸿蒙开发 - 恐惧清单应用
学习·flutter·华为·开源·harmonyos·鸿蒙
于慨14 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz14 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶14 小时前
前端交互规范(Web 端)
前端
CHU72903514 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing14 小时前
Page-agent MCP结构
前端·人工智能
王霸天14 小时前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
小领航14 小时前
用 Three.js + Vue 3 打造炫酷的 3D 行政地图可视化组件
前端·github
@大迁世界14 小时前
2026年React大洗牌:React Hooks 将迎来重大升级
前端·javascript·react.js·前端框架·ecmascript
PieroPc14 小时前
一个功能强大的 Web 端标签设计和打印工具,支持服务器端直接打印到局域网打印机。Fastapi + html
前端·html·fastapi