V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  woodytang  ›  全部回复第 1 页 / 共 5 页
回复总数  94
1  2  3  4  5  
2 小时 17 分钟前
回复了 wyfig 创建的主题 程序员 你们的私人项目 git 库现在都保持到哪里?
飞牛+gitea
@superhot

事件是这样的,emit("xxx",'咕咕咕'), listen('xxx',(text)=>{console.log("通知":text)})
回调是这样的
async fn(handle){
handle('咕咕咕')
}

handle(text){
console.log("通知":text)
}

await fn(handle)

--------

它们本质都是 解决异步情况下,也就是在不确定什么时候的情况下,A 给 B 发消息的问题,,
事件是发出去不管的,它和监听者没有绑定关系

回调是是绑定的,可以追踪,可以测试的

但是事件可以批量订阅,你要发广播可以使用事件,

如果你只是要链式执行,使用回调
3 小时 28 分钟前
回复了 CodeCodeStudy 创建的主题 程序员 swoole6.2 发布了,号称革命性升级
如果是新项目,你会选 Swoole ?
要开发快,选 ts/node
要跑得快 选 go
要复杂稳定 选 java

Swoole 就是一个外挂,给一堆老弱病残项目续命

当然,PHP 是世界上最好的语言
import { once, EventEmitter } from 'node:events';
import process from 'node:process';
//定义一个 事件喇叭
const ee = new EventEmitter();

process.nextTick(() => {
//在异步队列里 喇叭发消息
ee.emit('myevent', 42);
});

// 只处理一次的监听器,在主流程执行完后,会听到这个消息
const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
// 在异步队列里 喇叭发消息,但这次发的是一个 nodejs bug 设计,'error'是 nodejs hardcode 的 key ,你发这个消息相当于抛异常
ee.emit('error', err);
});

try {
//虽然你没有监听'error', 但是 nodejs 内部强迫你监听了
await once(ee, 'myevent');
} catch (err) {
//虽然只是发了个消息,但是确抛了个异常
console.error('error happened', err);
}



这个是大傻逼设计,消息是消息,异常是异常,违反 solid 原则,后来的 bunjs 运行时 不鼓励使用这种方式控制流程,
一般会使用 promise ,在异步方法里 throw 异常,然后使用 Controller ,控制异步任务的退出,也可以。

另外 现代化运行时框架 认为,用事件做控制流是反模式 是 anti pattern ,会把代码搞得很乱,不可追溯,一般采用 回调 来响应事件,更符合函数式编程


这样可以过面试吗?
1 天前
回复了 woodytang 创建的主题 程序员 2025 年 JavaScript 明星项目
@littleshy 凡是像 java spring boot 的 js 框架,都是有问题的,像什么 nestjs ,,好的不学,学那些复杂又没用的东西,,面向对象,,IOC 容器,,现在都是 serverless ,FP ,谁会玩容器啊,,一上来占掉一大块内存~
1 天前
回复了 woodytang 创建的主题 程序员 2025 年 JavaScript 明星项目
@Terry05 当你能理解它们解决什么问题的时候,就会觉得 NB 了
比如 Tailwind 这种原子化 class ,
shadcn headless UI ,
这两个可以让组件拷来拷去,,直接吊打以前的那种 ant design 之类的 UI 库,这就是革命性的变化

然后 有人嫌 Tailwind 字符串编程不够强大,马上就有人研究 panda css 这种 type safe 的方式用 js 写 css

---
前端社区就是这样进步的

有人想 ts 这么好,为什么不取代 js ,马上就有人搞出 bunjs 这样的 纯 ts 运行时~性能接近 go ,rust

这才是现代化的开发精神
1 天前
回复了 woodytang 创建的主题 程序员 2025 年 JavaScript 明星项目
@iorilu spring boot 才是重灾区,全是样板代码,ai 一改一个准,前端至少还有点变化
1 天前
回复了 TingLen 创建的主题 React 关于低代码的选型,请佬们帮我分析一下
我做了一个框架,一直在用,,只要定义数据库,,从后端到前端一键生成
为啥要防抖,我就是想要抖怎么办
1 天前
回复了 CodeCodeStudy 创建的主题 程序员 swoole6.2 发布了,号称革命性升级
不知道 php 现在的意义是什么,,js 生态完全可以替代了,无论是性能,开发体验,生态都可以嘎嘎乱杀
php 唯一能对标的就是 nodejs ,其他他都不够格
1 天前
回复了 wsc449 创建的主题 程序员 现在开发多端应用推荐什么工具和技术栈
为什么没有人说 expo ,,react 官网推荐的你们都不看的吗
@Ketter 招,可以培养,需要主动 ,可以加我微信 woody_tang
@DualVectorFoil 没明白你的意思??检查什么?
1 天前
回复了 woodytang 创建的主题 程序员 2025 年 JavaScript 明星项目
@leegradyllljjjj 知道核心定位,就不多~
@DualVectorFoil 是啊,所以快啊~~ 现在 bun 被收购了,也不难担心它会倒闭了,AI 时代的下半场 是工程化,nodejs 和 bunjs 这些是核心~~
@xiaohanyu 这就是让我感觉很难受的地方
2024 年 9 月 14 日
回复了 huiyuanai709 创建的主题 分享创造 做了一个 MySQL schema DDL 对比的网站
很不错,正在找这样的工具~
有这个是不是就可以不用 liquidbase 这些东西了?
这个怎么和自己的用户系统 结合呢,比如用户下单,是用你的系统里的用户 id 吗?
很不错啊!!已收藏, 自己训练的模型吗?
2024 年 9 月 13 日
回复了 fingerxie 创建的主题 程序员 有关前后端交互的协议请教
没听明白,他要你在 DTO 层做很多连表 ,对象转换变形吗? 还是说你枚举信息的返回格式??

枚举信息你给他一个统一接口,让他到你的字典里面查不就可以了
1  2  3  4  5  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1103 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 18:34 · PVG 02:34 · LAX 10:34 · JFK 13:34
♥ Do have faith in what you're doing.