我正在通过console.logs调试我的ng2应用程序。如果您正在记录数组,它将返回一个具有以下属性的AnonymousSubject:
AnonymousSubject
_isScalar:false
closed:false
destination:AnonymousSubject
hasError:false
isStopped:false
observers:Array[0]
operator:ToArrayOperator
source:AnonymousSubject
thrownError:null
__proto__:Subject
是否可以看到数组的内容?为什么单击“目标”会递归循环其内容的次数?
代码:
GetFeed(id: UUID): Feed[] {
var toReturnFeed: any[];
this.table.find({id: id}).fetch().subscribe(result => toReturnFeed);
console.log(toReturnFeed);
return toReturnFeed;
}
我有更多问题,但我现在要保存这些问题。提前谢谢。
答案 0 :(得分:3)
您没有记录实际的数组,而是Observable
,它可能会返回一个数组。
由于你构造了这个Observable
的结构,它的目的地与原点相同,因此会有一个循环引用。
要记录数组:
this.someObservable.subscribe((someArray: any[]) => {
console.log(someArray);
});
现在您已经发布了代码,您似乎忘记了aync
方法的一个重要概念。您无法像这样返回toReturnFeed
,因为它始终会生成undefined
。您应该返回Observable<Feed[]>
GetFeed(id: UUID): Observable<Feed[]> {
return this.table.find({id: id}).fetch()
}
然后,您可以从其他地方调用此方法,并获得如下结果:
serviceInstance.GetFeed(1).subscribe((returnFeed: Feed[]) => {
console.log(returnFeed);
});