我有一个数据服务,该服务返回JSONP API调用的Observable。当我在服务中订阅和控制台日志时,我得到了一组适当的数据。如果我将Observable返回到组件并在其中进行订阅,则控制台日志将显示有效负载中的值之一的其他值(缺少数组之一的值)。
我已经使用Postman验证了数据服务中显示的值是正确的,但是当Observable返回到组件并被订阅时,有效负载将丢失数组。
这是我的数据服务方法
`
getValuePlan(): Observable<ValuePlan> {
let leader = this.GlobalService.getSelectedLeader();
let qString = "getValues/?";
if(leader) qString += "id=" + leader.leader.id;
//** THIS shows proper values
this.http.jsonp<ValuePlan>(this.apiUrl + qString, 'callback')
.subscribe(payload => {
console.log("CONSOLE 1")
console.log(payload)
});
//** THIS returns the observable which is missing a value
return this.http.jsonp<ValuePlan>(this.apiUrl + qString, 'callback');
}
`
这是对此数据服务的组件调用
`
this.dataApiService.getValuePlan()
.subscribe(payload => {
//** THIS shows the payload with one missing array
console.log("CONSOLE 2")
console.log(payload)
});
`
返回的有效负载是一个相当大的JSON对象,但是缺少的数组嵌套在该对象的2个层次深处,这是唯一的不同之处。