[英]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.