我想在服务中获取数据,但我不知道它是怎么做的。
这是我的方法服务日历:
setWbsRdv(RDV: CalendarModel) {//enregistre le rendez-vous
this._http.post<CalendarModel>(this.wbsSaveDate, { RDV }).subscribe((data) => {
return data; //if console.log(data) is retourn "save ok"
}, (error) => {
})
这是我的组件是呼叫服务日历
validRDV() {
// console.log(this._RDV);
this._visiteur.getWbsJwt().subscribe(
apiJwt => {
this._visiteur.jeton = apiJwt;//enregistrement du jeton pour une utilisation ultérieure un autre composant
this._RDV.setJwt(apiJwt); // !! important injecter le jeton dans l'objet RDV
let reponse = this._calendarService.setWbsRdv(this._RDV); //enregistrement du RDV
console.log(response);
}
);
}
console.log(响应)是unifined,如何正确加载此响应 在我的模板中显示?
感谢您的帮助
答案 0 :(得分:1)
您需要在getWbsJwt().subscribe
内再次订阅setWbsRdv
。从subscribe
中移除setWbsRdv
部分,然后移入组件。
apiJwt => {
this._visiteur.jeton = apiJwt;
this._RDV.setJwt(apiJwt);
this._calendarService.setWbsRdv(this._RDV).subscribe(here your logic);
}
答案 1 :(得分:0)
不要实施&#39;订阅&#39;在你的服务中。 &#39;订阅必须由您使用的消费者实施。 请编码如下。
setWbsRdv(RDV: CalendarModel) {
return this._http.post<CalendarModel>(this.wbsSaveDate, { RDV });
}
&#13;
validRDV() {
// console.log(this._RDV);
this._visiteur.getWbsJwt().subscribe(
apiJwt => {
this._visiteur.jeton = apiJwt;//enregistrement du jeton pour une utilisation ultérieure un autre composant
this._RDV.setJwt(apiJwt); // !! important injecter le jeton dans l'objet RDV
let reponse = this._calendarService.setWbsRdv(this._RDV).subscribe((data) => {
return data; //if console.log(data) is retourn "save ok"
}, (error) => {
}); //enregistrement du RDV
console.log(response);
}
);
}
&#13;
答案 2 :(得分:0)
您应该使用rxjs catch / throw运算符并将它们与服务中的Observable结合使用。这样做:
import { Observable } from 'rxjs/Observable'
import 'rxjs/add/operator/catch'
import 'rxjs/add/observable/throw'
@Injectable()
export class MyService {
errorHandler (error) {
return Observable.throw(error.error.message)
}
testFunction (body): Observable<any> {
return this.http
.post('some-route', body, httpOptions)
.catch(this.errorHandler)
}
}
在您的组件中,请执行以下操作:
this._myService.testFunction(bodyObject).subscribe(
res => {
// this block is executed if you receive a valid response from your server
},
err => {
// here is here your Observable will throw an error if it occurs
// this block is executed if you receive an error from your server
}
)
这是保持代码清洁和组织良好的最佳方法。