如何阅读 Angular 中的 AnonymousSubject 2

How to read AnonymousSubject in Angular 2

我目前正在通过 console.logs 调试我的 ng2 应用程序。如果您正在记录数组,它将 return 具有以下属性的 AnonymousSubject:

AnonymousSubject
_isScalar:false
closed:false
destination:AnonymousSubject
hasError:false
isStopped:false
observers:Array[0]
operator:ToArrayOperator
source:AnonymousSubject
thrownError:null
__proto__:Subject

是否可以看到数组的内容?为什么单击 'destination' 会递归循环其内容 n 次?

代码:

GetFeed(id: UUID): Feed[] {    
    var toReturnFeed: any[];

    this.table.find({id: id}).fetch().subscribe(result => toReturnFeed);
    console.log(toReturnFeed);

    return toReturnFeed;
}

我还有更多问题,但我会暂时保留这些问题。提前致谢。

您没有记录一个实际的数组,而是一个 Observable 可能 return 一个数组。

并且由于您构建的结构Observable,其目的地与起点相同,因此将具有循环引用。

要记录数组:

this.someObservable.subscribe((someArray: any[]) => {
    console.log(someArray);
});

既然您已经发布了代码,您似乎忘记了 aync 方法的一个重要概念。你不能像那样 return toReturnFeed,因为它总是会导致 undefined。你应该 return Observable<Feed[]>

GetFeed(id: UUID): Observable<Feed[]> { 
    return this.table.find({id: id}).fetch()
}

然后您可以从其他地方调用此方法并获得如下结果:

serviceInstance.GetFeed(1).subscribe((returnFeed: Feed[]) => {
    console.log(returnFeed);
});