来自PHP的Angular 2 Observables

时间:2017-03-08 08:25:11

标签: php angular ionic2 rxjs

我对Observables中的Angular2略感陌生。根据我的理解,只要数据发生变化,他们就会向subscribers发出更改。实际上,我在{strong>初次运行的php后端获得了第一个回复。

  

但是,如果我更改或更新数据库中的内容 the observable cant fetch the next changes again. It will only update upon refresh

我的服务

checkField(_options : T):Observable<any>{
  this.options = _options;
  let x = this.serialize(this.options);

  let headers = new Headers({'Content-Type':'application/x-www-form-urlencoded'});
  let options = new RequestOptions({ headers: headers});

  return this.http.post("http://zodiark.co.nf/php/check_id.php" , x , options).map(this.extractData).catch(this.handleError);
}

我的组件

regChecker.checkField(this.checkerOption).subscribe( 
  (data) => { this.testObserver = data; console.log(this.testObserver)
})
  

如果可能的话,我只需要澄清    PS。提前致谢

1 个答案:

答案 0 :(得分:3)

在许多地方都使用了Observable,有很多方法可以理解Observable,但需要理解的是,HTTP请求返回一个在响应(或失败)时完成的Observable,它实际上无法知道您的后端何时决定“发送”更多数据,因为它不是以这种方式构建的,您的后端只响应请求。

因此,使用HTTP请求的observable几乎与使用Promises for HTTP请求完全相同,但Observables是可取消的。

在Observables的其他用例中,优势将变得更加清晰......我相信你会发现许多具有DOM事件可观察性的例子,或者angular2反应形式控件的值可观察等等......

希望我理解你在发生的事情上遗漏了什么:)