You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Signal能否触发重复值的事件通知?

Angular Signal 能否发射重复值的通知?

Angular Signal 默认只会在**值发生严格变化(通过===判断)**时,才会通知订阅者。这就是你修改代码后控制台没有日志的原因:

  • 原代码this.count.update((c) => c + 1)生成了新值,触发了订阅通知;
  • 修改为this.count.update((c) => c + 0)后,新值和旧值完全相等,Signal 判定没有变化,因此不会触发任何订阅回调。

如果你的业务场景确实需要在设置相同值时也触发通知,可以通过自定义equal比较函数来实现。在update或set方法的第二个参数中传入配置对象,将equal设为始终返回false的函数,这样无论值是否重复,都会强制触发通知:

// 使用update方法强制触发重复值通知
this.count.update((c) => c + 0, { equal: () => false });

// 或者用set方法直接设置当前值并强制通知
const currentVal = this.count();
this.count.set(currentVal, { equal: () => false });

简单总结:

  • 默认规则:Signal 只在值严格改变时发送通知;
  • 按需调整:通过equal配置可以打破这个限制,实现重复值的通知触发。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:59:52