如何使用angular 4调试rxjs takeWhile命令?

时间:2018-01-03 03:59:29

标签: angular typescript rxjs rxjs5

我在我的打字稿中使用rxjs takeWhile方法在条件为真时运行轮询(定期请求)。但问题是,即使条件为False,轮询也会持续运行。我尝试使用chrome开发人员工具通过保留断点来调试它,但不幸的是断点不适用于takeWhile方法。如何在takeWhile方法中打印语句或在takeWhile方法中放置断点。

Observable.interval(10000)
  .switchMap(() => http.get('/route1'))
  .map((data) => data)
  .takeWhile(() => this.obj.var === 'show_files')
  .subscribe((data: any) => {})

当我加载另一个页面以停止轮询时,我将此“this.obj.var”设置为其他内容。我只想轮询用户是否在当前页面中并在用户导航到任何其他页面时停止轮询,以避免在使用conrinouos请求的浏览器上过载。

您能否帮助我了解如何使用chrome开发人员工具调试rxjs方法

2 个答案:

答案 0 :(得分:1)

您可以使用do运算符记录结果

Observable.interval(10000)
.switchMap(() => http.get('/route1')).map((data) =>data)
.do(value=>console.log(value))
.takeWhile(() => this.obj.var === 'show_files').subscribe((data: any) => {})

答案 1 :(得分:0)

您可以更新传递给 takeWhile()运算符的箭头函数代码:

LogMyObjectError()