来自 #3473 的剩余出版物和观察者释放回归
AI协助对[审查对#3473的反馈]采取后续行动(https://GitHub.com/solidjs/solid/pull/3473#issuecomment-568733556),追踪合并后留下的遗物并随后进行修复.
后在59c4192a**重新检查,包括#3479和#3488. 四个独立重复的回归仍然存在:
- ** 毒性效应输入:** 效应在
[1、1、1]'之前收到[1、0、1]'(原评论A)。 - ** 分明可见的出处:** 伯爵公布
1',而副本显示0',其请求尚待处理(原评论C)。 - ** 失去能见度更新:** 连成一体的能见度写出每个请求解决后可见的内容. 这是与现在固定的原评论B不同的序列.
- ** 延迟释放:** 在删除最后的阅读器并读取`latest'之后,普通的写作继续等待无人观察的请求。 这最终完成;这是一个不必要的等待,而不是永久地失去状态.
下面的重写涵盖了这四种行为. 把它们在这里分组,可以带来公关反馈;它不承担一个根源。 同值更新组合变化单独列为合同问题.
□ 代表性的游乐场:一个分明的衍生物可见
使用当前下个构建将此 TSX 粘贴为 s.olid.uk 。 等待所有三个值显示“ 0”,然后单击“跑”。 过了一秒钟,Direct消失,Count显示1而Copy显示0. 一秒钟后收到 计算及其可见的衍生物应一致公布。
时间轴 : 从“@solidjs/web” 导入{ perfer}; 从 “ solid-js” 导入 { create Memo, createSignal, 最新, Show } ;
const 延迟 = <T = 无效, > (ms: 数字, 值?: T) QQ 新承诺(r QQ setTimeout (r, ms, value) ) ;
导出默认函数 App () { 算法 [count, setCount] = 创建 Signal( 0); const [show, setSshow] =创建Signal(真); c. [直接,设置Direct] = 创建Signal(真实); const 细节 = 创建Memo( ( ()) QQ 延迟( 1500) ; const copy = 创建Memo(细节);
返回 QQ 键 < 点击 Click QXasync () > {{ setShow(假名); 等待延迟( 500); 设置(1); 最新(副本); 等待延迟( 500); 设置显示( 真) ; 设置 Direct( 假); QQun </按钮 >
国家:{count ()}
{p> 指令:{details ()}\/p>代码:{show( )? 副本( ) :"隐藏"}\/p> < / > ; (中文(简体) ) {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
渲染 (( ()) QQ < App / >, 文档. get ElementById ("root")!) ;
□ 被送去的拖车
这是最初的评论A。 该信号及其同步身份备忘录在实际效果回调上存在分歧:`[1,0,1]',然后是`1,1,1'. PR前的下个控制(`3ae9e921')只提供`[1, 1, 1'.
< 细节>
<摘要 > 分层核心复制(TypeScript;顶层等待) </摘要 >
从“@solidjs/ signals”中导入{创建Memo、创建Render Effect、创建Root、创建Signal、冲洗};
const 勾选 = () QQ 新的承诺 < void > (r > set Timeout(r, 0));
c. 请求:(( ()
c. 记录:编号[][]=[];
针头
. . . . . . .内容来源: solidjs/solid