Angular 如果方法参数为false,如何使服务为null或0
伙计们,当Angular 如果方法参数为false,如何使服务为null或0,angular,rxjs,Angular,Rxjs,伙计们,当IsConfigurated==true时,我必须通过服务发送请求,但在同样的情况下,我不想在completerpage.ts上设置条件,所以我必须在我的服务上这样做,我尝试了相同的解决方案,如: ChangeACCStatus(IsConfigurated){ let dataStruct = { SessionId: localStorage.getItem('SessionId') } if(IsConfigurated){ ret
IsConfigurated==true
时,我必须通过服务发送请求,但在同样的情况下,我不想在completerpage.ts上设置条件,所以我必须在我的服务上这样做,我尝试了相同的解决方案,如:
ChangeACCStatus(IsConfigurated){
let dataStruct = {
SessionId: localStorage.getItem('SessionId')
}
if(IsConfigurated){
return this.http.post(`${this.CommandeURL1}/TryToChangeAccAlarm`, JSON.stringify(dataStruct), this.httpOptions);
}else{
return null
}
}
但是在这里,当我订阅该方法以防返回为null时,我发现了这个错误
无法读取null的属性“subscribe”
我试图在0点返回,但我遇到了:
类型“Observable | 0”上不存在属性“subscribe”
最后,我使用了returnnewobservable(null)
,在这里我根本无法访问subscribe
Rq:compliterPage.ts中的Myservice调用是:
this._compileSerivce.ChangeACCStatus(this.CurrentInfo['IsACCAlarmConfiguredByGPRS']).subscribe(contactServiceData =>{
console.log(contactServiceData)
if(contactServiceData != (null||0)){
//Do samething}
});
有多种解决方案 选项1:RxJS函数 您可以使用函数的RxJS
返回null
或false
从'rxjs'导入{of};
ChangeACCStatus(已配置):可观察常数
您可以返回RxJSEMPTY
常量,该常量将触发订阅的complete
回调并完成
从'rxjs'导入{EMPTY};
ChangeACCStatus(已配置):可观察{
如果(!!已配置){
const dataStruct={SessionId:localStorage.getItem('SessionId')};
返回this.http.post(`this.CommandeURL1}/TryToChangeAccAlarm`,JSON.stringify(dataStruct),this.httpOptions);
}
返回空;
}