角度信号:编程信号量

问题描述 投票:0回答:1

我想在条件发生变化时仅运行一次操作(变为

true
),例如

areAllDetailsLoaded() => run a function

我想将其编码为类似的信号

areAllDetailsLoaded=signal(false);

并将其用作

effect( () =>  {
   if (areAllDetailsLoaded()) {
          storage().getDetails() ....... run code

我面临的问题是,显然信号

storage
也被考虑在内,并且每当
storage()
更改代码运行时。这不是我想要的。将
areAllDetailsLoaded
更改为
true
后,代码应该只运行一次。

老实说我已经没有主意了。或者也许我对角度信号的理解还不够好。因此,锅炉模板模式将受到赞赏 - 最好使用信号。

angular angular-signals
1个回答
0
投票

以下是实现您想要的目标的两种方法:

  1. 将私有标志与 ngOnChanges 生命周期挂钩一起使用

  2. 使用 RxJS 中的BehaviorSubject

© www.soinside.com 2019 - 2024. All rights reserved.