admin管理员组

文章数量:1236734

I have a function that needs to be called about every 500ms. The way I am looking at doing it with angular2 is using intervals and observables. I have tried this function to create the observable:

counter() {
  return Observable.create(observer => {
    setInterval(() => {
      return this.media.getCurrentPosition();
    }, 500)
  })
}

With this code for the subscriber:

test() {
  this.playerService.initUrl(xxxx) // This works
  this.playerService.counter().subscribe(data => {
    res => {
      console.log(data);
    }
  })
}

I am very new to observables and angular2 so I might be taking the wrong approach pletely. Any help is appreciated.

I have a function that needs to be called about every 500ms. The way I am looking at doing it with angular2 is using intervals and observables. I have tried this function to create the observable:

counter() {
  return Observable.create(observer => {
    setInterval(() => {
      return this.media.getCurrentPosition();
    }, 500)
  })
}

With this code for the subscriber:

test() {
  this.playerService.initUrl(xxxx) // This works
  this.playerService.counter().subscribe(data => {
    res => {
      console.log(data);
    }
  })
}

I am very new to observables and angular2 so I might be taking the wrong approach pletely. Any help is appreciated.

Share Improve this question asked Jun 23, 2016 at 14:08 Drakee510Drakee510 5001 gold badge5 silver badges16 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 15

The Observable class has a static interval method taking milliseconds (like the setInterval method) as a parameter:

counter() {
    return Observable
        .interval(500)
        .flatMap(() => {
            return this.media.getCurrentPosition();
        });
}

And in your ponent or wherever:

test() {
  this.playerService.initUrl(xxxx) // This works
  this.playerService.counter().subscribe(
      data => {
          console.log(data);
      }
   );
}

本文标签: javascriptAngular2 Observable with intervalStack Overflow