一个间隔内的Angular2 http请求

标签 angular observable

我正在尝试每 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)
  })

  )
    }

最佳答案

您需要订阅来自flatMap响应的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

关于一个间隔内的Angular2 http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43125102/

相关文章:

angular - 如何在 Angular 中获取 DOM 元素的样式?

java - 没有得到 BehaviorSubject

angular - 在 Angular 单元测试中使用回车键提交表单

angular - 如何使用事件发射器触发子组件和父组件中的函数?

node.js - Google App Engine - 前端和后端 Web 开发

Angular observable 不过滤 json 数组结果

java - RxJava 嵌套 Zip 操作不返回

javascript - Angular 2 共享数据服务不工作

Angular 服务在每次调用时都会重置

css - Angular Material 访问主题颜色