2017-10-04 9 views
0

質問は簡単です:どのようにしてメソッドfind()にObservableを返しますか?NeDB find()の結果を観測可能に変換する

私が約束を使用すれば、すべて正常に動作します。

getData(){ 
return new Promise((resolve, reject) => { 
    this.db.find({}, (err, docs) => { 
    if (err) reject(err); 
    resolve(docs); 
    }); 
}) 
} 

しかし、私はこのような問題を解決するための観測を使用しようとします

getDataObs() { 
    return new Observable(subscriber => { 
     this.db.find({}, (err, docs) => { 
     if (err) subscriber.error(err); 
     subscriber.next(docs); 
     }); 
    }) 
    } 

加入者が得る結果は未定義です。

この問題を解決する必要があるオブザーバブル(bindCallback())を作成する方法は、コールバックを受け入れてオブザーバブルを返すため発生しました。しかし、私はそれを適切に使用することができませんでした。私は実際にこれを理解するためにいくつかの助けが必要です。なぜなら私は反応的なプログラミングに慣れていないし、私にとっては奇妙に思えるからです。

答えて

0
getData(){ 
    var arr =[]; 
    return this.getDataObs().subscribe(rs=>{ 
     if(rs && rs.length>0) arr = rs; 
    }); 
} 
関連する問題