【问题标题】:Angular2 http request in an intervalAngular2 http请求间隔
【发布时间】:2017-03-31 02:07:25
【问题描述】:

我试图每 3 秒发出一次请求并打印出响应,但直到现在还没有运气:(。我对Observables 很陌生,所以我做错了什么?

checkConnection() {

const URL = "https://www.google.at/";

Observable.interval(3000)
  .flatMap(() => this.http.get(URL).map(res => res.json()).catch((error:any) => Observable.throw(error.json().error || 'Server error'))
  .subscribe(data => {
     console.log(data)
  })

  )
    }

【问题讨论】:

    标签: angular observable


    【解决方案1】:

    您需要将subscribe 发送到来自flatMaps 响应的Observable,如下所示:

    Observable.interval(3000)
          .flatMap(() => this.http.get(URL)
          .map( res => res.json() )
          .catch( (error:any) => Observable.throw(error.json().error || 'Server error') ) )
          .subscribe(data => {
             console.log(data)
          })
    

    https://www.google.at/ 需要启用跨域请求才能获取数据。

    您可以使用的示例 plunker:http://plnkr.co/edit/Nz0LZJDSPcUZlYOHU3p7?p=preview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 2016-10-25
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 2017-03-10
      • 2016-05-14
      • 2017-03-12
      相关资源
      最近更新 更多