微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 BehaviorSubject 的前一个值和当前值返回一个值?

如何解决如何使用 BehaviorSubject 的前一个值和当前值返回一个值?

在我的 angular 应用程序中,我有一个用户服务、一个 activeUser$ 行为主题一个登录 $ 一个,它将根据 activeUser$ 的值(管道(映射))为真或假。 当 loggedIn$ 的下一个值为真然后为假时,这意味着用户已注销。 有一个函数我只想在它真然后假时触发。结果是一个loggedOut$ observable 会很棒! 有什么想法吗?

解决方法

详细了解成对运算符 here

在您的情况下,代码将如下所示:

    loggedOut$ = this.loggedIn$.pipe(
      pairwise(),filter(([previous,current]) => previous && !current)
    ).subscribe(...)
,

刚刚从here

中找到了我需要的答案

我是这样实现的:

loggedOut$ = this.loggedIn$.pipe(
    distinctUntilChanged(),map((current) => !current)
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。