顶级的流与rxjs

时间:2017-12-26 21:28:40

标签: javascript angular rxjs

对于日历提醒用例,我需要创建一个Observable,每分钟发出一分钟(每分钟0秒),每15分钟(0分钟,0分钟,15分钟,30分钟, 45分钟等)

计时器服务每分钟检查并创建一个警报(提醒等)

我尝试了以下内容:

return (
<div className="container">
    <Navigation />
        <div className="app-items-container">
            {
            this.state.notes.map((i, note) => {
                return(
                    <ReactCSSTransitionGroup key={i} {...transitionOptions}>
                        <Note noteContent={note.noteContent} 
                        noteId={note.id} 
                        key={note.id} 
                        removeNote={this.removeNote} />
                    </ReactCSSTransitionGroup>
                    )
                })
            }
        </div>
    <Form addNote={this.addNote} />
  </div>
);

这种方法在每分钟都能发挥作用,但秒数漂移,在一小时内发射时间为第47秒。

我意识到执行此操作的最佳方法是每秒发出一次并检查第二个是否为0,但我不确定如何使用Observable。

编辑:这是一个Angular 2应用程序。

1 个答案:

答案 0 :(得分:0)

看起来确实有点令人费解,但你可以开始observable.timer每秒运行一次,然后过滤seconds === 0。像这样:

  const source = Rx.Observable.timer( 1000, 1000)
                .map(x => moment())
                .filter(mom => mom.seconds() === 0);

  source.subscribe(m => console.log(m));