react 19 useOptimistic 竞争更新乐观值时阻塞

react 19 刚刚出,我在官网上调试这个 useOptimistic api 时,发现了一个竞争调用时的阻塞状态。当连续多次调用 updateFn 参数,且每次更新时间较长时,乐观状态的更新被阻塞了。

前往官网 useOptimistic 一节,修改末尾 demo 中 actions.js 代码如下:

js 复制代码
let i = 0;
const time = [10_000,6_000,10_000];
export async function deliverMessage(message) {
  await new Promise((res) => setTimeout(res, time[i++] ?? 1000));
  return message;
}

此时前三次的更新时间变为 10s、6s、10s,当我连续依次输入 1、2、3 后,触发三次乐观更新,视图在某个时间点出现如下的结果:

实际上,第二次和第一次更新已经完成,第三次更新还在进行中。可是乐观更新的结果没办法进行 diff 区分,乐观值被更慢的更新严重阻塞。

新 api 还是慎用

相关推荐
Mapmost4 小时前
让 AI 真正看懂世界—构建具备空间理解力的智能体
前端
橙 子_4 小时前
我本以为代码是逻辑,直到遇见了HTML的“形”与“意”【一】
前端·html
二川bro4 小时前
第51节:Three.js源码解析 - 核心架构设计
开发语言·javascript·ecmascript
Kisang.4 小时前
【HarmonyOS】ArkWeb——从入门到入土
前端·华为·typescript·harmonyos·鸿蒙
沉默璇年4 小时前
tgz包批量下载脚本
前端
a***13145 小时前
python的sql解析库-sqlparse
android·前端·后端
0***R5155 小时前
前端构建工具缓存,node_modules
前端·缓存
坚持就完事了5 小时前
CSS-4:CSS的三大特性
前端·css
坚持就完事了5 小时前
CSS-3:背景设置
前端·css·html
坚持就完事了5 小时前
CSS-2:CSS的元素显示模式
前端·css