Angular 角度5无法读取属性';订阅';当我尝试订阅非服务方法类型时的未定义
我有一个方法Angular 角度5无法读取属性';订阅';当我尝试订阅非服务方法类型时的未定义,angular,typescript,angular2-observables,Angular,Typescript,Angular2 Observables,我有一个方法 validatingUpdateBtn: boolean; Validating(): Observable<boolean> { //Do some function if (this.validatingUpdateBtn) { return Observable.of(true).map(res => res); } else { return Observable.of(false)
validatingUpdateBtn: boolean;
Validating(): Observable<boolean> {
//Do some function
if (this.validatingUpdateBtn) {
return Observable.of(true).map(res => res);
}
else {
return Observable.of(false).map(res => res);
}
}
但是当我试图订阅验证()方法时,我无法读取未定义的的属性“subscribe”
我没有发现哪里出了问题?验证更新btn:boolean
ValidatingFunction = () => {
//Do some function
if (this.validatingUpdateBtn) {
return Observable.of(true).map(res => res);
}
else {
return Observable.of(false).map(res => res);
}
}
Validating = ValidatingFunction.asObservable();
试试这个,可能是工作验证更新btn:boolean
ValidatingFunction = () => {
//Do some function
if (this.validatingUpdateBtn) {
return Observable.of(true).map(res => res);
}
else {
return Observable.of(false).map(res => res);
}
}
Validating = ValidatingFunction.asObservable();
试试这个可能是工作你没有任何东西可以
映射
,因此在的之后删除映射
操作符。使用rxjs/observable/of
中的of
操作符,如下所示。
import { Observable, of } from 'rxjs';
Validating(): Observable<any> {
let res = this.validatingUpdateBtn ? of(true) : of(false);
return res;
}
handleSelection(): void{
this.Validating().subscribe( res => {
if (res) {
console.log(res);
} else {
console.log(res);
}
});
}
import{Observable,of}来自'rxjs';
Validating():Observable您无需映射
,因此在
的之后删除映射
操作符。使用rxjs/observable/of
中的of
操作符,如下所示。
import { Observable, of } from 'rxjs';
Validating(): Observable<any> {
let res = this.validatingUpdateBtn ? of(true) : of(false);
return res;
}
handleSelection(): void{
this.Validating().subscribe( res => {
if (res) {
console.log(res);
} else {
console.log(res);
}
});
}
import{Observable,of}来自'rxjs';
Validating():Observable正如我们在@Chandan Y S中发现的那样,问题是当前的如果语句位于另一个条件结构中,在本例中是开关语句,在某些特定场景中,执行甚至没有到达返回可观察值的if-else
语句,这就是函数没有返回任何内容的原因。正如我们在@Chandan Y S中发现的,问题是当前的如果语句在另一个条件结构中,在本例中,switch
语句,在某些特定场景中,执行甚至没有到达返回可观察值的if-else
语句,这就是函数没有返回任何内容的原因。您能说明如何调用handleSelection()
方法吗?在函数Validating()
中,您之前是否有任何return
s?@AmirArbabian handleSelection()在ngOnInit()中直接调用,第二个问题呢?没有!因此,问题可能在于,您发布的if
块中的可观察对象已经位于其他类似开关的内部<代码>案例
或另一个如果
?如果它太大,也许你可以把它上传到某个地方,然后在这里发布链接,因为这样我就可以确定问题出在哪里了。你能告诉我如何调用handleSelection()
方法吗?在函数Validating()
中,您之前是否有任何return
s?@AmirArbabian handleSelection()在ngOnInit()中直接调用,第二个问题呢?没有!因此,问题可能在于,您发布的if
块中的可观察对象已经位于其他类似开关的内部<代码>案例
或另一个如果
?如果它太大,也许你可以把它上传到某个地方,然后在这里发布链接,因为这样我就可以确定问题出在哪里了?不幸的是,arrow函数没有asObservable()
方法,只有Subject
has不幸的是,arrow函数也没有asObservable()
方法,只有Subject
has那是我的问题@Chandan Y S如果这个答案对你有用,就把它标记为正确答案,这是我的问题@Chandan Y S如果这个答案对你有用,就把它标记为正确答案