如何阅读 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);
});
我目前正在通过 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);
});