[英]angular 4 function return boolean = undefined
我似乎無法弄清楚這一點。 我有一個 DataService(又名 ds)和一個組件。 組件調用函數doesUserExist():
console.log("boolean="+this.ds.doesUserExist());
這總是以未定義的形式出現。 這是 DataService 中的函數:
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
作為公共變量,但無論發生什么,這都是未定義的。
我還在上面的 if 語句中設置了var bool:boolean=true
和 bool WILL 等於 false(我已經通過 console.log 檢查過),而不是返回為false
,根據上面的指定,它仍然是true
。
那么我做錯了什么? 我四處搜索並嘗試過:
Boolean([return bool])
但代碼不喜歡那樣
我也嘗試將returns
放在 if 語句中。 那行不通。
謝謝!
您沒有定義 bool,並且它沒有通過您的訂閱傳遞(因為它是異步的,所以答案可能會在稍后出現),因此當您返回 bool 時,它沒有任何價值。
由於您的函數基於響應的長度,因此您可以刪除該布爾值。
doesUserExist(): Observable<boolean> {
var myvars = this.af.list('/accounts/'+this.uid) as FirebaseListObservable<Listing[]>;
return myvars.subscribe(data=>{
console.log("length="+data.length)
return data.length === 0; // true if that's the case, or false
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.