나는 이것을 알아낼 수 없습니다. DataService (a.k.a. ds) 및 구성 요소가 있습니다. 이 구성 요소는 doUserExist() 함수를 호출합니다.각도 4 함수를 반환 부울 = 정의되지 않았습니다
console.log("boolean="+this.ds.doesUserExist());
항상 정의되지 않은 것으로 표시됩니다.
doesUserExist(){
var bool:boolean;
var myvars = this.af.list('/accounts/'+this.uid) as FirebaseListObservable<Listing[]>;
myvars.subscribe(data=>{
console.log("length="+data.length)
if (data.length===0){
bool = false;
}
})
return bool;
}
나도 공용 변수로 var bool:boolean
을 퍼팅 시도하지만, 무슨 일이 있더라도,이 정의되지 않은 온다 : 여기 DataService에있는 기능입니다.
var bool:boolean=true
설정하고 부울 다시 여전히 위의 지정에 따라
true
의
false
로 오는 대신에 (내가 CONSOLE.LOG를 통해 확인했습니다) 위의 if 문에서 거짓과 동일 할 것이다.
그래서 내가 뭘 잘못하고 있니? 나는 주위를 검색 한 내가 시도 :
Boolean([return bool])
하지만 코드 나뿐만 아니라 if 문에 returns
을 퍼팅 시도하는
을 좋아하지 않는다. 그건 작동하지 않습니다.
감사합니다.
가능한 중복 https://stackoverflow.com/questions/43055706/how-do-i-return-the -response-from-observable-http-async-call-in-angular2) – n00dl3