Angular中Realm/Mongo Watch获取Observable数组遇空结果问题
问题:Realm Watch功能无法返回正确的Observable<AccountDTO[]>结果
我想用Realm的watch功能获取Observable<AccountDTO[]>,用于在表格中展示数据。当前代码可编译,但返回空结果(集合内实际有数据),调试时无法执行到第一行之后的代码。另外有一段可正常运行的代码,但我需要返回Observable类型的结果。
有问题的代码
watchAccounts(): Observable<AccountDTO[]> { return new Observable(observer => { this.#accCollection .find({ status: 30, sort: 25 }) .then(accs => { console.log('result: ', accs); if (accs) { observer.next(accs); } const usrStream = this.#accCollection.watch(); usrStream .next(stream => { stream.onNext(update => observer.next(update.fullDocument)); stream.onError(err => observer.error(err)); observer.add(() => { stream.close(); }); }) .catch(err => console.error('Error in stream: ', err.message)); }); }); }
调试时无法执行到console.log('result: ', accs);之后的代码,返回空结果。
可正常运行但不符合返回类型要求的代码
watchUser2(): void { this.#accCollection .find({ status: 30, sort: 25 }) .then(accs => { console.log('result: ', accs); if (accs) { } const usrStream = this.#accCollection.watch(); usrStream .next(stream => { stream.onNext(update => console.log(update)); //observer.next(update.fullDocument) stream.onError(err => console.error(err.message)); //observer.error(err) // observer.add(() => { // stream.close(); // }); }) .catch(err => console.error('Error in stream: ', err.message)); }); }
内容的提问来源于stack exchange,提问作者erwin
相关产品推荐
相关产品推荐

