-
在 async 函数中,直接在 finally 块内使用 await 不会阻塞 Promise 的拒绝/解决流程;若未妥善协调 try/catch/reject/resolve 的时序,清理逻辑将被忽略或导致未处理异常。 在 async 函数中,直接在 finally 块内使用 await 不会阻塞
-
CSS :is() 自身不增加权重,但会采用参数列表中最高 specificity。本文通过计算示例说明 ID 分支如何抬高整条规则,并给出同权重分组、:where()、拆分例外与 cascade layer 的控制方法。
-
用一个可重复运行的列表切换示例,验证 View Transitions 并发导航、skipTransition、finished 和失败回滚的边界。
-
content-visibility: auto 会让屏外内容使用尺寸占位,进入视口后真实高度变化就可能引起滚动跳动。本文说明 contain-intrinsic-size、auto 记忆尺寸、图片比例和三个排查观测值的用法。
-
Fetch 的 Response body 是一次性可读流。response.json() 消费后,response.text()、blob() 或第二次 json() 都可能因 body 已使用而失败。本文解释 bodyUsed、clone 和单次解析的边界,给出可维护的响应处理方式。
-
页面滚动时让目录进度条、卡片和提示状态跟着视口变化,不必为每次 scroll 事件写一套节流脚本。本文用 animation-timeline: view() 绑定视图进度,说明关键帧顺序、最近滚动容器、@supports 降级和 reduced-motion 验收。
-
用 Blob.slice 把大文件切成固定分片,配合稳定恢复标识、单片重试和已完成分片查询,实现刷新页面后继续上传的前端方案。
-
React Router v6 中嵌套路由无法渲染,通常是因为父级布局组件未正确使用 占位符——它才是子路由 element 内容得以插入并显示的关键。 React Router v6 中嵌套路由无法渲染,通常是因为父级布局组件未正确使用 `` 占位符——它才是子路由 `element` 内容得以插
-
infer 是 TypeScript 条件类型中的关键字,用于从类型中推断出新的类型。 它允许在泛型条件类型中提取和推导类型,实现强大的类型操作。 infer 关键字工作原理 原始类型 type Promise = { value: T } infer 推导 提取出的类型 type ValueOf
-
CSS Anchor Positioning 可以让 tooltip、菜单等浮层直接关联触发元素,并通过 position-try 配置靠近视口边缘时的回退位置。
-
CSS scroll anchoring 通常用于抵消异步内容插入造成的页面位移;如果它与自定义滚动逻辑冲突,可用 overflow-anchor: none 在局部容器关闭,再检查父子滚动框和尺寸预留。
-
本文介绍在高并发场景下,如何通过应用层文档锁机制避免 Mongoose 数据被后写请求意外覆盖,解决“先读-后改-再存”导致的丢失更新(Lost Update)问题。 本文介绍在高并发场景下,如何通过应用层文档锁机制避免 Mongoose 数据被后写请求意外覆盖,解决“先读-后改-再存”导致的丢失更
-
Vue computed 默认只有 getter,直接赋值会触发只读警告。本文用源状态、派生值和 writable computed 三个层次说明正确改法,并给出回滚与响应式检查清单。
-
TypeScript 项目遇到 structuredClone 类型缺失时,按浏览器与 Node.js 宿主分别检查 target、lib、types 和 noLib,再区分编译期声明、运行时支持与 DataCloneError 数据边界。
-
长段落最后只剩几个字时,CSS text-wrap-style: pretty 可以让浏览器优先减少孤行,但它比普通换行更耗计算。本文从标题、正文和 contenteditable 三种场景拆开 pretty 与 balance 的边界,并给出兼容写法与检查方法。