按属性值过滤 Firefly 语义切片对象存储 Observables

按属性值过滤 Firefly 语义切片对象存储 Observables

Image by 恩里克 from 关注

设想

我们希望能够观察由属性过滤的反应萤火虫语义切片对象存储事件 姓名 价值 .

[

@fireflysemantics/切片

建造…

www.npmjs.com

](https://www.npmjs.com/package/@fireflysemantics/slice)

方法

使用 onFilteredEvent<E> 作为 Firefly Semantics Slice 实用程序库的一部分提供的函数。它是这样定义的。

 导出函数 onFilteredEvent<E> (  
 值:任何,  
 属性名:字符串  
 obs:可观察的<E>): 可观察的<E>{  
 返回 obs.pipe(  
 过滤器 ((e) => !! (e && e [propertyName] === value)));  
 );  
 }

RxJS 筛选 表达式检查事件 ( e ) 被定义并且 价值 参数匹配由标识的值 财产名称 争论。这 观测值 论据是 可观察的 Firefly 语义切片对象存储提供的参数。

演示

在这个演示中,我们创建了一个 命名事件 具有 姓名 我们将定位的属性。

 导出类型 NamedEvent = { name: string }; 常量命名事件:命名事件 = {名称:'hilde'};

我们还创建了实例 命名事件 环境 姓名 希尔德 .我们使用它来初始化我们的对象存储。

 常量开始:OStoreStart = {  
 事件:{值:命名事件},  
 }; 接口 ISTART 扩展 KeyObsValueReset {  
 事件:ObsValueReset;  
 }  
 让操作系统:OStore<ISTART> =新的OStore(开始);

我们现在可以过滤事件 财产 姓名 被设定为 希尔德 像这样:

 const hildeEvents$: 可观察的<NamedEvent>= onFilteredEvent<NamedEvent> (  
 '希尔德',  
 '姓名',  
 OS.S.event.obs  
 );

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/40098/35410109

posted @ 2022-10-01 09:35  哈哈哈来了啊啊啊  阅读(15)  评论(0编辑  收藏  举报