RxJSpublishReplay 与publishLast

2024-01-11

我正在 Angular 应用程序中实现缓存 HTTP 结果。据我所知,以下代码均有效,但我需要知道它们是否正在执行exactly同样的事情,或者我错过了一些重要的事情?

发布最后

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

    return this.posts$;
  }

发布重播

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

  return this.posts$;
}

publishLast共享(顾名思义)last发射值 - 只能在流传输时确定完成.

publishReplay(1)分享latest发射值,这是在任何发射之后完成的。


如果是this.http.get(...)行为是相同的,因为流将在收到结果后完成,因此lastlatest值是同一个东西。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RxJSpublishReplay 与publishLast 的相关文章

随机推荐

  • 将日历设置为特定日期?

    我想设置一个提醒 并在特定日期发出通知 然后我目前正在使用 AlarmManager 和 NotificationManager 当我从 dateDialog 设置选定的日期时 提醒起作用了 如何将日历值设置为固定时间的闹钟 我从中获取当前
  • 在不知道形状的情况下加载 np.memmap

    是否可以加载一个numpy memmap在不知道形状的情况下仍然可以恢复数据的形状 data np arange 12 dtype float32 data resize 3 4 fp np memmap filename dtype fl
  • October CMS 创建多选表单字段

    我需要在 October Cms 后端表单 fields yaml 中创建一个多选表单字段 我应用了以下方法 选择字段 标签 样品类型 下拉菜单属性 多个 多个 该字段的选项将从模型中调用 一切正常 但当我提交表单时 只有第一个选定的选项会
  • for 循环中 findObjectsInBackgroundWithBlock 完成后执行操作

    我的代码中有这样的结构 for METMeetingEntity e in self meetingList PFQuery query PFUser query some query constraints depending on ME
  • 如何从 IntelliJ / PyCharm 中删除材质主题(或重置为默认值)?

    我已经安装了 Material Theme UI 它使我的 IDE 变黑 后来我决定删除并删除插件 不幸的是 这并没有恢复默认颜色 IDE 的某些部分 例如项目窗格 仍然是黑色的 如何恢复 如何从 IntelliJ PyCharm 中删除材
  • Mac OS X Python GUI 管理员提示符

    我有一个 OS X Python 应用程序 它使用 wxPython 作为 GUI 控件 我希望在启动网络服务之前提示用户获得管理权限 类似于使用 Objective C 中的授权服务 API 我发现的最接近的图书馆是 Bob Ippoli
  • android 解码资源为 xml 位图返回 null - API 级别 7

    我有一个奇怪的情况 将我的 PNG 从 drawable hdpi 移动到 drawable 并将 XML 位图放入 drawable hdpi 后 我无法使用以下命令解码这些位图BitmapFactory decodeResource 方
  • Gnuplot 极坐标直方图

    我有一个数据文件file dat平面上的点有三列 无线电 角度 温度 我想使用极坐标和颜色图将此数据绘制为直方图 如下图所示 但使用 gnuplot 我可以创建一个histogram dat文件包含我想要的 bin 的值 但我不知道如何在
  • python中两个列表的排列

    我有两个列表 例如 list1 square circle triangle list2 red green 我如何创建这些列表的所有排列 如下所示 squarered squaregreen redsquare greensquare c
  • 如果满足条件,pandas 将值从一列复制到另一列

    我有一个数据框 df col1 col2 col3 1 2 3 1 4 6 3 7 2 我要编辑df 这样当 col1 的值小于 2 时 从col3 所以我会得到 new df col1 col2 col3 3 2 3 6 4 6 3 7
  • 如何基于二值掩模裁剪图像

    我使用 torch 和一些语义分割算法来生成分割图像的二进制掩码 然后我想根据该蒙版裁剪图像 为了清楚起见 我需要在每个像素的基础上裁剪它 这似乎是一个简单的问题 但我能想到的唯一解决方案是反转draw mask类似于 Coco API 中
  • 为什么多次调用 app.UseEndpoints(..) 时中间件不执行?

    我遇到过由于多次调用而跳过中间件的情况app UseEndpoints Looking at this startup code I would expect SetUser middleware to be executed before
  • vc++10中模板私有继承不可访问

    以下代码使用 GCC 4 4 6 和 Comeau 4 3 10 进行编译 include
  • andThen 对于 Scala 中两个参数的函数

    假设我有两个函数f and g val f Int Int gt Int val g Int gt String 现在我想用andThen得到一个函数h val h Int Int gt String f andThen g 不幸的是它无法
  • 我应该验证 JWT 两次(在 API 网关和服务本身中)吗?

    我目前正在为我们的服务设置 API 网关 API 网关处理令牌验证 通过 OpenID Connect 仅当令牌有效时 请求才会路由到目标后端服务 然后我还应该在后端服务本身中验证令牌吗 该服务需要令牌中的信息来修改数据库查询 仅读取允许用
  • Google Places API 地点描述/摘要

    使用 Google Places API 我似乎无法通过 附近的搜索 或 详细信息搜索 获得某个地点的描述 请查看附图 了解我想要从 JSON 中提取的内容 这些信息一定来自某个地方 只是哪里的问题 Example Picture http
  • 在弹出窗口中隐藏栏地址(chrome)[重复]

    这个问题在这里已经有答案了 我正在寻找这个 但找不到解决方案 我正在使用以下命令打开一个弹出窗口 window open url title toolbar no location no directories no status no m
  • 导致长度不等于 1 或 dplyr 中组长度的分组操作

    我不确定使用哪个函数来执行以下操作 library data table dt data table a 1 4 b 1 2 dt rep a 1 3 by b b V1 1 1 1 2 1 1 3 1 1 4 2 2 5 2 2 6 2
  • 在javascript中将32位整数转换为4字节数据

    我被要求将整数转换为 32 位二进制数 所以被使用integer toString 2 并得到所需的0和1的32位二进制格式的值 但实际上我被要求做的是将整数转换为 4 字节的数据 我无法按照建议获得输出 我用过integer toStri
  • RxJSpublishReplay 与publishLast

    我正在 Angular 应用程序中实现缓存 HTTP 结果 据我所知 以下代码均有效 但我需要知道它们是否正在执行exactly同样的事情 或者我错过了一些重要的事情 发布最后 getPosts if this posts this pos