繁体   English   中英

我应该对 RxJs 和 Angular 中的主题使用“$”符号后缀吗?

[英]Should I use "$" sign suffix for Subjects in the RxJs and Angular?

所以我有这个关于 RxJs 代码和 Angular 中的 $ 符号后缀命名约定的问题。 在 angular 最佳实践文档中,总的来说,我发现我们应该在声明 Observable 时使用它,但还没有看到将它与 Subjects 一起使用。 为什么? 我认为它应该意味着“异步”。 此外,主题是可观察的。 所以它们是异步的,你必须订阅它们。 现在我也开始将 $ 与 Subjects 一起使用。 这种做法有什么真正的骗局吗?

每个subject都是observable的。

如果您查看 Angular 文档:

这在扫描代码和寻找可观察值时很有用。 此外,如果您希望一个属性存储来自可观察对象的最新值,则可以方便地使用带有或不带“$”的相同名称。

$ 符号后缀并不意味着异步,它用作软约定来指示变量是 stream。 它更像是一个命名助手来指示类型。

$后缀用于表示某个变量是可观察的。 它有助于区分正常变量和可观察量。 它只是一种练习,

请参阅this以查看解释$后缀的官方文档。 这里

除了 Stoobish 和 Nipuna 所说的之外,我还要补充一点,我也喜欢使用$作为后缀,以避免在处理从 stream 中提取的值时使用相同的变量名。

例如:

const currentTimeSeconds = currentTimeMs.pipe(
  map(currentTimeMs => currentTimeMs * 1000)
)

在上面的示例中,您最终会得到 2 个名为currentTimeMs的变量。 当然这仍然有效,但它比帮助更令人困惑。 当然,您也可以将内部变量重命名为不同的名称。 但总的来说,我发现使用以下内容更清楚

const currentTimeSeconds$ = currentTimeMs$.pipe(
  map(currentTimeMs => currentTimeMs * 1000)
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM