681 期 - 通过动画彻底弄懂 Promise 执行原理
本期看点:本期介绍了一篇带有图解和动画的文章,配以一个 8 分钟视频,深入介绍了 Promise 的工作方式以及其在后台的调度方式。鉴于 Promise 是 JavaScript 中异步函数的基础,对这些机制有一个良好的心智模型是很有用的。
编辑:TimLi、Yucohny
JavaScript 可视化:Promise 执行 —- 这是一篇带有图解和动画的文章,配以一个 8 分钟视频,深入介绍了 Promise 的工作方式以及其在后台的调度方式。鉴于 Promise 是 JavaScript 中异步函数的基础,对这些机制有一个良好的心智模型是很有用的。
Lydia Hallie
▶ Node.js:起源故事的纪录片 —- 这部纪录片有一个小时长,但它非常好地覆盖了 Node 的历史,包括 2014 年一切如何酝酿到 io.js 的分支。或许可以在复活节周末观看?
Honeypot
快讯:
-
Node.js 技术指导委员会已 确认没有意图从主 Node 分发中移除 npm。
-
Bun 是否已经支持 Windows 了?不,但 Bun v1.1 将支持 Windows,据说即将发布……
-
一个简单但有用的 Web Component 示例,在一个 GitHub Gist 中。
-
RunJS Play 是一个整洁的基于 Web 的 JavaScript 游乐场,它在每一行旁边显示即时的实时反馈。
-
Vercel 现在完全支持 Node.js v20,适用于构建和函数。
📒 教程与趣事
一览 ECMAScript 的迭代器助手方法 —- 这个提案 已经有几年的历史了,但现在在 TC39 的 stage 3 中,迭代器助手正在被实现并与 V8 12.2/Chrome 122 一起发布。这些助手是像 .map
,.filter
,.take
和 .forEach
这样的函数,并且可以提供给其原型链中有 Iterator.prototype
的任何对象。
Rezvan Mahdavi Hezaveh (V8)
介绍 Waku 的 Page Router —- Waku 是一个有趣的最小化服务器端 React 框架,现在它也为现代 React 服务器组件时代带来了一个最小化的 API:“现在,创建一个 Waku 站点就像在 ./src/pages
目录中创建一些文件和文件夹一样简单”。
Sophia Andren
需要知道的关于现代 CSS 的知识 —- 这是一份指南,列出了 CSS 的最新添加项(想想嵌套、视图转换,以及 :has()
等)。JavaScript 也在其中有出现,用于增强或者填充现代 CSS 功能。
Chris Coyier
构建一个微型 HTMX SSR 框架 -— Matteo 基于早期的关于创建一个“电影引语”应用程序的教程,探索了一个可以使用的替代后端堆栈,基于 Fastify、Vite 和 HTMX。
Matteo Collina
认识 Angular 的新 output()
API —- Outputs 允许组件作者向父组件发出值。
Paul Gschwendtner(Google)
我们在三周内用 Svelte 重写了我们的 React 应用程序
Dusty Phillips
Confidence Okoghenun
🛠 代码与工具
Trix 2.1:一个干净、丰富的 Web WYSIWYG 编辑器 -— 一个由 37signals(被誉为 Ruby on Rails 的发源地)开发的 WYSIWYG 编辑器。它被用在他们的 Basecamp 和 HEY 应用程序中,所以它经过了最严格的测试。这是 GitHub 仓库。
37signals
Atlassian 的实用拖放框架 -— 一个注重性能的拖放库,可以用来在任何前端堆栈上提供体验。页面上有一个实时演示,以及 Alex Reardon 的演讲录音,介绍了创建它的动机和它的工作方式。
Atlassian
Create Vue3 App:一个新的 Vue 应用脚手架工具 -— 受到像 Create React App 这样的工具的启发,这个工具使用 Vite 来帮助启动一个新的基于 Vue 的应用程序,使用的工具基于对一系列问题的回答。
Selemon Brahanu
<relative-time>
v4.4:将时间戳格式化为本地化的相对时间 —- 向这个 Web Component 提供一个标准格式的日期和时间,它会渲染出适合的文本。它实际上在 GitHub 本身的各处都有使用(在提交时间上使用 Inspect Element)。欢迎查看 演示。
GitHub
DOM3D.js:在 GitHub Gist 中的 3D DOM 查看器 —- 将这些代码复制并粘贴到浏览器控制台内,可以获得 DOM 的 3D 视图,这个效果很奇特,但很好玩。
Orion Reed
版本发布:
-
VitePress v1.0 –- 强大的静态站点生成器。
-
Neutralinojs v5.1 –- 另一种跨平台桌面应用程序框架。
-
Babylon.js v7.0 -– 强大的游戏和 3D 渲染引擎。还没有官方的发布帖子,但预计今天晚些时候会有。
-
Radix Themes v3.0 –- 强大的前端组件库。
-
PGlite v0.1 –- 轻量级的 Postgres,打包为 WASM,作为一个 TypeScript 库,用于浏览器、Node.js、Bun 和 Deno。
-
npm-publish v3.1 –- 用于发布包到 npm 的 GitHub Action。
-
AdminJS v7.8 –- Node.js 应用程序的自动管理界面。
-
Slonik v39.3 -– 具有类型安全的 Node.js Postgres 客户端。
-
react-three-fiber v8.16 -– Three.js 的 React 渲染器。