Как обновление наблюдается каждые 30 секунд? - PullRequest
0 голосов
/ 27 ноября 2018
@Component({
  selector: 'app-geo',
  templateUrl:   <img  mat-card-image [src]="profileUrl | async ">

  export class GeoComponent implements OnInit {
    date;
    profileUrl: Observable<string>;

    constructor(private tempService: TemperatureService, private humService: HumiditeService, public authService: AuthService,private database: AngularFireDatabase, private storage: AngularFireStorage,private router: Router)
    {
      const ref = this.storage.ref('live/live.jpg');
      this.profileUrl = ref.getDownloadURL(); 
    }
  }
})

Мое изображение в Firebase перезаписывается каждые 30 секунд.Как я могу получить значение this.profileUrl каждые 30 секунд и сохранить его в Firebase?

Как использовать таймер для обновления моего наблюдаемого каждые 30 секунд?

1 Ответ

0 голосов
/ 28 ноября 2018

Комбинация операторов RxJS Интервал и TakeWhile .

Примерно так Пример кода проекта StackBlitz :

const source = interval(30000).pipe(
  takeWhile(() => { return true }) // here you can have some logic to stop the requests
);
const subscription = source.subscribe(
  (x) => {
    // your code goes here
  },
  function (err) {
    console.log('Error: ' + err);
  },
  function () {
    console.log('Completed');
  });
...