我对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。提前致谢。
答案 0 :(得分:3)
在许多地方都使用了Observable,有很多方法可以理解Observable,但做需要理解的是,HTTP请求返回一个在响应(或失败)时完成的Observable,它实际上无法知道您的后端何时决定“发送”更多数据,因为它不是以这种方式构建的,您的后端只响应请求。
因此,使用HTTP请求的observable几乎与使用Promises for HTTP请求完全相同,但Observables是可取消的。
在Observables的其他用例中,优势将变得更加清晰......我相信你会发现许多具有DOM事件可观察性的例子,或者angular2反应形式控件的值可观察等等......
希望我理解你在发生的事情上遗漏了什么:)