我試圖調用一個函數,以便知道一家公司是否已經達到了允許的最大註冊數量,但每次我稱之爲它都不會打印任何內容。 有誰知道我在做什麼錯?試圖從一個函數得到真或假不會做任何事
謝謝!
getMaxRegs(company: string) {
var snapshotMaxRegs = this.db.object(`companies/${company}/maxregs`,{ preserveSnapshot: true})
return snapshotMaxRegs.map(snapshot => {
console.log('maxRegs = '+ snapshot.val())
return snapshot.val();
});
}
getCountRegs(company: string){
var snapshotCountRegs = this.db.object(`companies/${company}/countregs`,{ preserveSnapshot: true})
return snapshotCountRegs.map(snapshot => {
console.log('currRegs = '+ snapshot.val())
return snapshot.val();
});
}
maxRegsReached(company: string){
return Observable.forkJoin([
this.getCountRegs(company),
this.getMaxRegs(company)
]).map((joined)=>{
let countRegs = joined[0];
let maxRegs = joined[1];
return countRegs >= maxRegs;
})
}
現在我訂閱maxRegsReached得到的結果,但它不會打印任何東西,...
this.maxRegsReached('01').subscribe(result => {
console.log(result) //true or false
})
你調試了你的代碼嗎?你的代碼是否到達'return countRegs> = maxRegs;'行? – echonax
您是否看到其他'console.log'的結果? –
從文檔中,我明白當使用'forkjoin'時,如果其中一個observables沒有發出任何值,你的'subscription'將不會被調用。 在這裏檢查https://www.learnrxjs.io/operators/combination/forkjoin.html和這裏http://reactivex.io/documentation/operators/zip.html –