TwKit
正在载入
TwKit

给事件回调接 Promise,不用再绕一圈,把 resolve、reject 从构造器里“掏”出来。 Promise.withResolvers() 一次给… · @BaiBtw · TwKit

@BaiBtw

给事件回调接 Promise,不用再绕一圈,把 resolve、reject 从构造器里“掏”出来。 Promise.withResolvers() 一次给你三个东西: const { promise, resolve, reject } = Promise.withResolvers(); promise 用来等结果;另外两个函数用来决定它如何完成。三者在同一作用域,少一层嵌套,不是换了一套 Promise 规则。 典型场景:把 Node.js 可读流接成异步迭代器。 • error 事件交给 reject。 • readable 或 end 事件调用 resolve,唤醒等待。 • await 之后读取并 yield 当前批次的数据。 • 这一批读完,再创建下一组 promise、resolve、reject,等下一批。 关键就在最后一步:复用的是只注册一次的事件监听器,不是把同一个 Promise 反复结算。监听器通过变量拿到更新后的函数。 它也支持 Promise 子类;构造器仍得接受 executor,并把 resolve、reject 交给它。甚至非 Promise 构造器也能借用,但返回的函数行为取决于那个构造器,别自动当成原生 Promise。 兼容边界也别漏:Chrome/Edge 119、Firefox 121、Safari 17.4、Node.js 22 起支持。代码短了,运行环境的门槛可没凭空消失。

曝光 108 · 评论 3 · 点赞 2 · 书签 0

查看原帖