热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RxJSpublishReplay与publishLast

如何解决《RxJSpublishReplay与publishLast》经验,为你挑选了1个好方法。

我正在Angular应用程序中实现缓存HTTP结果.据我所知,下面的代码都有效,但是我需要知道它们是否完全相同,或者我错过了一些重要的东西?

publishLast

getPosts() {
    if( !this.posts$ ) {
      this.posts$ = this.http.get('api').publishLast().refCount();
      return this.posts$;
    }

    return this.posts$;
  }

publishReplay

getPosts() {
  if( !this.posts$ ) {
    this.posts$ = this.http.get('api').publishReplay(1).refCount();
       return this.posts$;
  }

  return this.posts$;
}

olsn.. 16

publishLast共享(顾名思义)最后一个发射值 - 只能在流完成时确定.

publishReplay(1)分享最新的发射值,这是在任何发射后完成的.


this.http.get(...)行为相同的情况下,因为流将在收到结果后完成,因此最后最新值是相同的.

但是,对于发出多个值的流或者在发出此值后不立即完成的流,您将得到不同的结果.



1> olsn..:

publishLast共享(顾名思义)最后一个发射值 - 只能在流完成时确定.

publishReplay(1)分享最新的发射值,这是在任何发射后完成的.


this.http.get(...)行为相同的情况下,因为流将在收到结果后完成,因此最后最新值是相同的.

但是,对于发出多个值的流或者在发出此值后不立即完成的流,您将得到不同的结果.


推荐阅读
author-avatar
zealyw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有