zoukankan      html  css  js  c++  java
  • [RxJS] Updating Data with Scan

    You often need to update the data flowing through the stream with custom logic based on what you need to output. This lesson covers how to use scan for collecting and updating the outputs as your stream progresses.

    EVerytime we click start button now it will start from 0:
    const Observable = Rx.Observable;
    
    const startButton = document.querySelector('#start');
    const stopButton = document.querySelector('#stop');
    
    const start$ = Observable.fromEvent(startButton, 'click');
    const interval$ = Observable.interval(1000);
    const stop$ = Observable.fromEvent(stopButton, 'click');
    
    const intervalThatStop$ = interval$.takeUntil(stop$);
    
    
    start$.switchMapTo(intervalThatStop$)
      .subscribe( (x) => {
      console.log(x);
    })

    What we want is it should remeber the current state, so that, next time when we start again, it can use our current state:

    const Observable = Rx.Observable;
    
    const startButton = document.querySelector('#start');
    const stopButton = document.querySelector('#stop');
    
    const start$ = Observable.fromEvent(startButton, 'click');
    const interval$ = Observable.interval(1000);
    const stop$ = Observable.fromEvent(stopButton, 'click');
    
    const intervalThatStops$ = interval$
        .takeUntil(stop$);
    
    start$
        .switchMapTo(intervalThatStops$)
        .scan( (acc) => {
            return Object.assign(acc, {count: acc.count + 1})
        }, {
           count: 0
        })
        .subscribe((x)=> console.log(x));
  • 相关阅读:
    第二阶段冲刺进程2
    第二阶段冲刺进程1
    Alpha版使用说明
    回复每组的意见的评价
    每个组针对本组提出的意见的整理
    软件项目第一次Sprint总结
    站立会议7
    站立会议6
    团队博客11
    团队博客10
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5258786.html
Copyright © 2011-2022 走看看