立即开始首次调用 IntervalObservable

2024-03-25

我正在使用一个IntervalObservable连续调用我的应用程序的服务器端。我可以订阅和取消订阅 Oberservable,一切正常,但有一个例外:

对服务器的第一次调用会延迟,但我希望它是即时的。该人的行为IntervalObservable原则上是正确的,但不符合我的要求。

@Injectable()
export class LoggerService {
  constructor(private http: Http) { }
  private apiURL = 'assets/file.json'; 

  getList() {
       return IntervalObservable.create(1000).flatMap(() 
       => this.http.get(this.apiURL))
      .map(this.extractData)
      .catch(this.handleError);
  }
  private extractData(res: Response) {
    var fooot = new Foo();
    fooot.fillFromJSON(JSON.stringify(res.json()));
    return fooot;
  }

  private handleError(error: any) {
    let errMsg = (error.message) ? error.message :
      error.status ? `${error.status} - ${error.statusText}` : 'Server error';
    console.error(errMsg);
    return IntervalObservable.throw(errMsg);
  }
}

那么,如何在第一次调用时立即调用服务器,然后以定义的延迟调用服务器呢?


两件事情,

  1. 您可以使用工厂方法而不是派生类型,即Observable.interval(3000)代替IntervalObservable.create
  2. 您可以使用timer使用单个运算符来完成此操作:

    return Observable.timer(0, 1000)
      .flatMapTo(this.http.get(this.apiURL))
      .map(this.extractData)
      .catch(this.handleError);
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

立即开始首次调用 IntervalObservable 的相关文章

  • 无法打开 TypeScript 项目的扩展开发主机

    我正在尝试阅读第一个 VS Code 扩展教程 但无法打开扩展开发主机 按 F5 没有任何反应 单击调试侧栏中的开始按钮似乎也没有执行任何操作 我已经使用生成了我的项目yo code并选择了 TypeScript 选项 我尝试过选择 Jav
  • 发生未处理的异常:工作区中未设置配置“生产”

    您好 在 Angular 8 中创建了一个项目 最初它仅支持一种默认语言 US EN 然后我应用了本地化 在准备生产构建的本地化之前 我曾经给出以下命令 ng build prod base href Windchill com qiwkC
  • 角度订阅响应

    好吧 我对 Angular 还很陌生 所以我遇到了这个小问题 所以我遵循 Angular 指南 https angular io guide http https angular io guide http 所以我的问题是我的 http r
  • Angular4 - 滚动到锚点

    我正在尝试对同一页面上的锚元素进行简单的滚动 基本上 用户点击 尝试 按钮 它就会滚动到页面下方 ID 为 登录 的区域 现在 它正在与一个基本的id login a href login a 但它正在跳转到该部分 理想情况下 我希望它滚动
  • 如何在 RxJS 订阅方法中等待

    在 RxJS 主题的订阅回调内部 我想要await on an async功能 下面是打字稿转译器抱怨的代码示例 错误 131 21 TS2304 找不到名称 await async ngOnInit this subscriber dat
  • Typescript:如何从react-bootstrap导入特定组件

    早些时候我的应用程序位于ReactJs React bootstrap 现在我正在使用Typescript ReactJs React bootstrap 为了减少生产应用程序的大小 之前我曾经使用 导入react bootstrap组件i
  • 包 [email protected] 不满足其同级包的对等依赖性要求?

    我正在尝试在我的 Angular 2 应用程序中安装 ngrx store 模块 我正在使用 npm install 并收到以下错误 npm ERR peerinvalid The package email protected cdn c
  • Angular2 与 Jquery-ui 滑块

    我尝试将 Jquery ui 滑块与 angular2 一起使用 我想让变量 slideValue 显示滑块的值 但我不知道如何将我的模型或变量从角度绑定到滑块 这是我的滑块组件 import Component ElementRef In
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 如何从 Javascript/Typescript 中的数组对象计算运行总计并使用 HTML 在每个实例上显示输出?

    我正在开发一个 MEAN 堆栈项目 并且有一个如下所示的数组 savings any 300 450 350 500 我还有一个名为 saving bf 的变量 它是从数据库中检索的结转储蓄 其值如下 savings bf 15000 我想
  • 修剪日期格式 PrimeNG 日历 - 删除时间戳、角度反应形式

    我将以下内容推入我的反应形式 obj 中2016 01 01T00 00 00 000Z但我想要以下2016 01 01 有谁知道有一个内置函数可以实现上述目的 我已经搜索过文档here https www primefaces org p
  • 如何在 Angular 2 应用程序中使 DateAdapter 单例?

    我正在开发一个带有延迟加载模块的 Angular 7 应用程序 我也使用有角度的材料组件 我想在日期选择器组件中本地化并支持多个区域设置 当应用程序语言发生变化时 我想在整个应用程序中全局更改它 可以通过 DateAdapter setLo
  • Typescript 模块解析的根路径

    我有两个使用打字稿的项目 一个是核心项目 moduleA 另一个是业务项目 moduleB 项目B使用项目A的模块 ts文件 位于 scripts文件夹 我想通过以下方式为projectB指定模块解析根文件夹projectA scripts
  • 元素不适应 Firefox 上的

    使用 ES6 ish D3js 模块运行 Angular 6 应用程序会导致 Firefox 出现问题 Chromium Chrome Safari 和 IE Edge 工作正常 伪代码看起来类似于 生产代码可以在下面找到
  • Angular 停止 Enter 键提交

    I am trying to stop the Enter from submitting my button and rather make it point to another function I tried trapping th
  • 如何解决此错误“不要使用对象作为类型”?

    我不明白这个错误消息造成的 我的组件有两个和一个包含对象的数据数组 我收到一条错误消息 不要使用object作为一种类型 这object类型目前很难使用 我该如何解决它 我附加了数组包含对象的数据 first tsx import data
  • 角度 4 单击按钮功能未触发

    我正在尝试检查文本输入是否为空或不在角度 4 中 我没有为此使用表单 这只是一个输入字段 当我在下面的按钮中执行 addLocaton 函数时 需要进行检查 我的输入字段
  • Angular 2+ 源代码中的 ɵ(类似 Theta)符号

    在深入研究 Angular 4 3 源代码后 我经常遇到 符号 例如 在异步管道源 https github com angular angular blob 4 3 2 packages common src pipes async pi
  • 在 TypeScript 中实现类型安全的服务注册表

    我想要一个函数根据给定的标识符 例如字符串或符号 返回对象实例 在代码中它可能看起来像这样 define your services type ServiceA foo gt string const ServiceA foo gt bar
  • MUI DatePicker + date-fns 本地化问题

    当我使用MUI时出现这个问题日期选择器 with 本地化提供商 and 适配器日期Fns with 匈牙利 local

随机推荐

  • 渲染表格中的下标/上标(闪亮)

    我在一个闪亮的应用程序中有一个数据表 我想在其中添加上标到我的观察结果中 这些应该详细说明观察结果是否是估计值 以及观察年份距参考年份有多远 此数据已经在我的数据集中 例如 特定的观察结果可能显示 75 上标 3 e 这可能吗 我今天也有同
  • $sce:itype 尝试信任需要字符串的内容中的非字符串值:上下文:resourceUrl

    我想播放存储在我的 sails 服务器中的歌曲 路径是http localhost 4000 images 123 mp3 在前端 我使用 ng repeat 列出来自服务器的歌曲 div div i class fa fa play ci
  • helm 图表中的动态命名空间变量

    我与四个团队合作 他们使用在 kubernetes 命名空间中设置的完全相同的环境 我创建了 helm 图表来安装这些环境 一切正常 但由于主机名格式如下 我必须手动创建入口
  • ClickOnce 快捷方式无法启动应用程序

    我在 VS 2017 中创建了一个使用 ClickOnce 安装的 WPF 应用程序 将解决方案部署到网络位置后 我可以通过访问 application 链接在我的 64 位 Windows 10 计算机上安装 但是 该应用程序安装后无法在
  • 完成时更新整个

    编辑单元格后 我很难重新渲染 PrimeFaces 数据表 更改一个单元格中的值可能会更改其他单元格中的条目 因此需要刷新整个表格 这是 JSF 页面
  • 如何与 Kivy GUI 一起运行 Tornado 事件循环?

    我的客户端应用程序使用KivyGUI Kivy 有自己的事件循环 并使用 WebSocket 协议连接到服务器Tornado Tornado 也有一个事件循环 这就是连接部分是异步的原因 我希望用户在 Tornado 客户端运行监听服务器消
  • 如何删除 NSMutableArray 中具有相同属性值但只有一个的所有对象

    我有一个带有 url 字符串属性和标题的历史对象 我想搜索 URL 包含搜索字符串的对象的所有历史记录 然后删除所有重复项 例子 我有一系列历史对象 其中 20 个都是 https www google com https www goog
  • C# Winforms 复选框不指示焦点

    如果复选框是 Tab 键顺序 0 中的第一个控件 则在显示表单时并不表示它具有焦点 事实上 它确实具有焦点 您可以通过按空格键来选中 取消选中控件来演示这一点 如果您先按 Tab 键 然后按 Shift Tab 键返回到该复选框 则标签会出
  • 闪亮滑块输入从最大到最小

    是否可以制作一个以降序显示值的 sliderInput 从左到右 例如 5 4 3 2 1 runApp list ui fluidPage sliderInput test min 5 max 1 value 3 step 1 serve
  • 在Java中将BufferedImage转换为Mat(OpenCV)[重复]

    这个问题在这里已经有答案了 我试过这个link https stackoverflow com questions 14958643 converting bufferedimage to mat in opencv并有下面的代码 我的程序
  • WPF 窗口不会释放其资源,直到程序终止

    我一直在阅读有关 WPF 内存处理的内容 并跟踪了前 5 个和前 8 个内存泄漏陷阱 但在我目前的情况下没有任何帮助 我的软件有一个问题 WPF 在程序终止之前不会释放内存 如果我永远让它消失 无论我做什么都会导致 OutOfMemoryE
  • PHP - 从文件名字符串中删除扩展名

    我想从文件名中删除扩展名 并获取文件名 例如file xml gt 文件 image jpeg gt 图像 test march txt gt test march 等 所以我写了这个函数 function strip extension
  • 在 irb 中重新加载 ruby​​gems?

    我现在有这个脚本 def r this require this puts this is now loaded rescue LoadError puts The gem this is missing puts Should I ins
  • 为什么 List.ForEach 比标准 foreach 更快?

    考虑一下 必备条件 The alphabet from a z List
  • 如何使用 Erlang 发送推送通知?

    我正在尝试使用 Erlang 向 APNs 发送推送通知 这是我到目前为止想出的代码 module apnstest2 export connect 0 connect gt application start ssl ssl seed s
  • 在Python re中仅匹配unicode字母

    我有一个字符串 我想从中提取 3 个组 19 janvier 2012 gt 19 janvier 2012 月份名称可以包含非 ASCII 字符 因此 A Za z 对我不起作用 gt gt gt import re gt gt gt r
  • R-因子箱线图中的组抖动? [复制]

    这个问题在这里已经有答案了 是否可以将抖动分组到像我这样的箱线图中 以便数据点与每个市场的因素一致 现在它正在按市场名称排列 我给它们上了颜色以显示哪些应该被分组 My code p lt ggplot droplevels subset
  • setOffscreenPageLimit() 如何通过保留更多屏幕外 Fragment 来提高 ViewPager 性能?

    我有一个ViewPager控制五个Fragments 当我从Fragment在索引 1 到Fragment在索引 0 处 动画中有短暂的停顿我想消除的 目前 我没有打电话setOffscreenPageLimit 所以我知道Fragment
  • 处理 php 页面错误的最佳方法?

    现在我的页面看起来像这样 if GET something somevalue output somecode make a DB query fetch a row row stmt gt Fetch PDO ASSOC if row n
  • 立即开始首次调用 IntervalObservable

    我正在使用一个IntervalObservable连续调用我的应用程序的服务器端 我可以订阅和取消订阅 Oberservable 一切正常 但有一个例外 对服务器的第一次调用会延迟 但我希望它是即时的 该人的行为IntervalObserv