如何阅读Angular 2中的AnonymousSubject

时间:2017-03-07 15:27:29

标签: angular debugging typescript rethinkdb

我正在通过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;
}

我有更多问题,但我现在要保存这些问题。提前谢谢。

1 个答案:

答案 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);
});