我有一个Angular 应用程序,它使用库的toSignal()函数从可观测的流中创建信号.以下是我的代码片段:

public_timeline$ = this.stream_service
  .readProfileFeed('timeline', 'public')
  .pipe(
    // ... (some operations)
  )
  .pipe(
    switchMap((activities) => {
      // ... (some more operations)
    })
  );

public_timeline = toSignal(this.public_timeline$);

public_timeline$个观察者从外部来源获取和处理数据.然后,我使用toSignal()函数从这个观测值创建信号public_timeline.

现在,我希望能够使用新更新的数据重置/重新加载/刷新/呼叫toSignal().我想重新触发整个过程,并根据更新的数据用新的信号替换public_timeline信号.

我已经研究了各种方法,比如使用SubjectBehaviourSubject来实现这一点,但我不确定如何正确地重置或刷新信号.考虑到我提供的代码 struct ,实现这一点的最佳方式是什么?如何使用最新数据更新public_timeline

对处理这种情况的任何帮助或指导都将不胜感激.谢谢!

推荐答案

toSignal()是连接ObservablesSignals世界的桥梁. 如果我们正在查看文档:

Get the current value of an Observable as a reactive Signal.
toSignal returns a Signal which provides synchronous reactive access to
values produced by the given Observable, by subscribing to that Observable.
The returned Signal will always have the most recent value emitted by the subscription,
and will throw an error if the Observable errors.

这是因为toSignal()人热衷于订阅《引擎盖下的观察者》. 基本上,只要被观测对象发出值,你的信号就会始终具有来自该被观测对象的最新值. 在您的情况下,如果readProfileFeedhttp呼叫,则需要再次拨打.否则,只需使您的可观察性发出一个新值,您的信号将自动具有最后一个值.

Javascript相关问答推荐

根据密钥中存储的概率在数组内 Select 随机对象

使用脚本标签时的JSDoc智能感知

我应该如何在此Angular 16应用程序中的方法中使用@ Hostspel?

为什么函数不使用以前函数返回的参数?

如何将特定的字符串类型转换为TypScript中的字符串?

二维数组,过滤并返回带有索引而不是值的新数组

鼠标移动时更新画布

设置默认值后动态更新japbox或调色板

使用CDO时如何将Vue组件存储在html之外?

JS、C++和C#给出不同的Base 64 Guid编码结果

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

Klaro与Angular的集成

在React中获取数据后,如何避免不必要的组件闪现1秒?

将旋转的矩形zoom 到覆盖它所需的最小尺寸&S容器

如何强制Sphinx中的自定义js/css文件始终加载更改而不缓存?

用于在路径之间移动图像的查询

在使用REACT更改了CSS类之后,无法更改CSS样式

自定义图表工具提示以仅显示Y值

当从其他文件创建类实例时,为什么工作线程不工作?

有没有办法通过使用不同数组中的值进行排序