惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
J
Java Code Geeks
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
G
Google Developers Blog
V
V2EX
The Register - Security
The Register - Security
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
S
SegmentFault 最新的问题
博客园 - Franky
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
C
Check Point Blog
MyScale Blog
MyScale Blog
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
F
Fortinet All Blogs
Jina AI
Jina AI
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
阮一峰的网络日志
阮一峰的网络日志
B
Blog
L
LangChain Blog
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence
GbyAI
GbyAI

Node.js

告别 Django Admin!这个 NodeJS 全栈框架让你在 DTO 中直接配置 Table/Form 渲染 Bun 用 Rust 重写的 PR 已合并到主分支 TanStack 最新版本被投毒,病毒会盗密钥和报复性删除用户目录 Bun 从 Zig 到 Rust 的迁移已经实锤,下个版本可能成为最后一个 Zig 版本 bun 要从 zig 迁移 rust 了, 100 万刀被 claude 收购了,开始影响语言决策了 - V2EX JS/Node 已经是新时代的 Java 了吧 Node.js 服务大部分时候连阿里云 Redis 是正常的,但是又时候会突然报 read ECONNRESET? - V2EX 2026 年, node 写后端你用的 nestjs, fastify, honojs 还是其他? npmmirror 竟然有些包没有更新到最新版本 大家 typescript 下用的最多的是后端框架是哪个? 求助,大家 node.js 是怎么代理的 ai 时代, node.js 成为核心语言 NestJS + Swagger UI:非 200 状态码 Execute 时返回值不显示问题 深入 alova3 服务端能力:分布式 BFF 层到 API 网关的最佳实践 - V2EX Anthropic 收购 Bun 关于 Node.js 中的事件循环问题。 - V2EX Hoa - 一个极简 Web 框架 有没有 v 友遇到 windows10 丢失系统环境变量的问题 Esbuild 进程占用高 有没有推荐的 Nodejs 的 sass 多租户系统 2025 年 node 项目,乱成一锅粥的 typescript ESM import 写法该怎么选? [EvanNav 6.3.1] 如何删除加载页面,让 Nav 更符合你的需求⁉️ 删除 node_modules 文件夹非常耗时 Node.JS 作者 Ryan Dahl 的故事 Vona ORM 文档终于肝完了,欢迎拍砖 Node.js 官网更新了 adonisjs 有没有现成的注册登录库? 现在流行的 Node.js 做后台比传统的 Java .Net 有哪些优势? 现在大家开发 api 都用什么 node 框架?有没有想 rails 一样,功能齐全的框架? Prisma 不能优雅的支持 DTO,可以试试 Vona ORM 比 prisma studio 更好性能的类 studio 数据管理 node 怎么获取剪切板中复制的文件信息 写了个 js 小工具库, 希望大家给点建议 NodeJS 阿里云服务器,经常遇到整个服务器卡死,系统盘读操作被占满 不用继承就能给类加事件系统?这波原型链操作我给满分 做了一个函数式、带类型、超顺手的微型事件库,已发布到 npm 告别 Node.js 工具链地狱: Bun 如何让 MCP Server 开发效率翻 3 倍 - V2EX redis 集群模式支持批量操作库 mget/mset 😂😂浪费了 3 天时间尝试在新项目中使用 prisma,最后还是决定回到 typeorm - V2EX 吐槽一下 bun node.js 有什么比较好用的微信 sdk - V2EX nodejs 后端,怎么比较好的生成接口文档?(排除 nest.js) - V2EX Cherry Studio 只用 bun.exe 怎么绕过去? 把 node.js 程序打包成可执行文件,不过只有 10M - V2EX 前端包管理工具调研 - V2EX 同样是运行 npm run build 打包程序 cursor 比 hbx 慢 1000 倍 从零开始开发一个 MCP Server! 现在还有人 eggjs 吗? - V2EX TypeScript7.0 用 go 重写, 10 倍快,看了两遍确定是真的... - V2EX 做了几个扩展,顺便整理了一下开源了一个浏览器扩展开发模版 prisma 运行 migrate 命令之后,总会把其他不相关的表给删除 问个页面跳转访问方案 求助! v 友们求推荐靠谱的 node.js 学习及面试网站和视频 大家正使用哪个 node 版本,会保持用最新版吗? 请教大家一个在 hono.js 中使用 ts 的类型兼容性问题
请问下 JavaScript 的 CustomEvent 和自己手搓的发布订阅哪个更快效率更好?
ChrisFreeMan · 2025-04-01 · via Node.js

这是一个创建于 438 天前的主题,其中的信息可能已经有所发展或是发生改变。

// JS 的内置发布订阅

// create custom events
const catFound = new CustomEvent("animalfound", {
  detail: {
    name: "cat",
  },
});
const dogFound = new CustomEvent("animalfound", {
  detail: {
    name: "dog",
  },
});

const element = document.createElement("div"); // create a <div> element

// add an appropriate event listener
element.addEventListener("animalfound", (e) => console.log(e.detail.name));

// dispatch the events
element.dispatchEvent(catFound);
element.dispatchEvent(dogFound);

// "cat" and "dog" logged in the console

// 我的自定义发布订阅,我的桌面应用移动应用网页应用都是用它驱动的。

export class StateManage<T> {
  private inValue: T
  private publishChangeCalls: (() => void)[] = []

  constructor(v: T) {
    this.inValue = v
  }

  subscriptChange(subCall: () => void) {
    this.publishChangeCalls.push(subCall)
  }

  unsubscriptChange(subCall: () => void) {
    this.publishChangeCalls = this.publishChangeCalls.filter(sub => !Object.is(sub, subCall))
  }

  set value(v: T) {
    this.inValue = v
    this.publishChangeCalls.forEach(call => call())
  }

  get value(): T {
    return this.inValue
  }
}
AV1

1

AV1      2025 年 4 月 1 日

设计 Pub/Sub ,需要考虑的一些问题:
1 、set value 收到的新值( v )跟旧值( inValue )相等(===)时,有无必要触发事件?
2 、publishChangeCalls 被调用时如果再次修改 value ,如何确保其他订阅者的调用顺序?
3 、publishChangeCalls 应该考虑接收两个参数,新值和旧值,比如这样:(newValue: T, oldValue: T) => void 。
4 、有时我们刚订阅的时候,想让该新的 publishChangeCalls 立刻被执行一次,方便初始化。
5 、是 subscribe ,不是 subscript (😂)。

参考我也曾经造过轮子。
https://imgur.com/a/NdlvoNf

ChrisFreeMan

2

ChrisFreeMan      2025 年 4 月 1 日

@DOLLOR 靠,居然一直没发现我打错了,好在都是自己的项目。。。😅

你说的 1 ,2 ,3 ,4 都不是我遇到的问题啊,这些问题我都会在其他地方处理的。而且我问的也不是这个。

ChrisFreeMan

3

ChrisFreeMan      2025 年 4 月 1 日

算了,突然发现我问了一个很无聊的问题,我已经问 AI 了解决了,我自己沉了吧。

rimworld

4

rimworld      2025 年 4 月 1 日

一般来说是语言自带的会比较好吧,运行环境( v8 )啥的会做优化。