我想知道与删除功能相关的内容。请参阅以下代码: -
// Method in service
delete(Id: string): Observable<any> {
this.Url = 'http://locahost:8080/...';
return this.http.delete(this.Url)
.map((response:Response) => response.json())
.catch(this.handleError);
}
// Method in component
deleteFromComp(Id: string): void {
this.subscriptions.push(this.MyService.delete(Id).subscribe(
data => {
},
error => this.errorMessage = <any>error, () => { }
));
this.CallServciceToGetDataFromServer(this.PageRequestModel);
}
delete方法调用服务器端代码来删除记录,并且没有返回任何内容。
我有以下两个问题: -
以下修改过的调用不起作用: -
// Method in component
deleteFromComp(Id: string): void {
this.subscriptions.push(this.MyService.delete(Id).subscribe(
data => {
this.CallServciceToGetDataFromServer(this.PageRequestModel);
},
error => this.errorMessage = <any>error, () => { }
));
}
答案 0 :(得分:1)
如果您不订阅observables
,则不会执行
自httpClient
所有HTTP requests
返回observables
后,您应该subscribe
向他们发送
订阅可观察对象:
请记住,可观察者很懒惰。如果你不订阅什么都没有 将要发生。很高兴知道你订阅的时候 在obserbe中,每次调用subscribe()都会触发它自己独立的 执行给定观察者。订阅电话不是共享的 在同一个观察者的多个订阅者中。
以下是一个示例代码段:
import { Observable } from "rxjs/Observable"
// create observable
const simpleObservable = new Observable((observer) => {
// observable execution
observer.next("bla bla bla")
observer.complete()
})
// subscribe to the observable
simpleObservable.subscribe()
// dispose the observable
simpleObservable.unsubscribe()
直到你订阅,直到你致电simpleObservable.subscribe()
不会执行。
<强> PS:强>
使用subscribe
的一个主要用途,对于检查delete status
很重要,例如backend
如果error
会引发res.status
,那么您可以查看在response.success
回调中使用error
或error
或{ "count":"number" }
的状态
答案 1 :(得分:0)
deleteFromComp(Id: string): void {
this.subscriptions.push(this.MyService.delete(Id).subscribe(
() => {
this.CallServciceToGetDataFromServer(this.PageRequestModel);
},
error => this.errorMessage = <any>error, () => { }
));
}