Angular 提供商收到 JSON 但将其内容识别为 none
Angular provider receives JSON but recognizes its content as none
我有两个组件依赖于第三个组件函数来接收一些 JSON 数据。
他们俩使用的函数是这样的:
getAllPosting(before, after) {
return new Promise((resolve, reject) => {
console.log("url", environment.apiLogin + this.apiBase + localStorage.getItem('idEmpresa') + '/' + before + '/' + after)
this.http.get(environment.apiLogin + this.apiBase + localStorage.getItem('idEmpresa') + '/' + before + '/' + after, {headers: {Authorization: this.oauthService.authorizationHeader()}})
.subscribe((result: any) => {
console.log("provider result", result)
resolve(result);
},
(error) => {
reject(error);
});
});
}
在第一个组件上,console.log("provider result", result) 语句显示此结果:
但是,在第二个组件上,突出显示的 console.log 显示了以下结果:
这似乎不是后端问题,因为数据库中的所有数据和查询 return 都是正确的结果。有成千上万的用户,但其中 none 个用户有此问题,当前用户除外。
此错误导致 table 上没有显示任何数据,例如:
我试过在不同的客户端上请求数据,但是 none 其中有这个问题。独占该用户
此外,当尝试使用 forEach 迭代 console.log 数组时,显示了正确的信息。但是,当尝试 console.log 整个对象时,我们用于 table 的主要字段一直显示为 Nan。
result.forEach(element => {
console.log("foreeach",element.amountPaid)
});
如果从 http.get
调用返回的数据确实正确,则从服务返回的对象有可能稍后被 [=11= 之后触发的代码操纵] 被调用。
因此,当您尝试在控制台中查看 result
对象时,您将看到该操作的结果,而不是 console.log
调用期间的对象。这可以解释为什么您在 foreach
打印期间看到正确的值,因为控制台打印的是数字文字 - 而不是对象,但是它们很可能会被承诺解决时触发的代码更改。
因此,我建议检查使用 getAllPosting
结果的代码。
我有两个组件依赖于第三个组件函数来接收一些 JSON 数据。 他们俩使用的函数是这样的:
getAllPosting(before, after) {
return new Promise((resolve, reject) => {
console.log("url", environment.apiLogin + this.apiBase + localStorage.getItem('idEmpresa') + '/' + before + '/' + after)
this.http.get(environment.apiLogin + this.apiBase + localStorage.getItem('idEmpresa') + '/' + before + '/' + after, {headers: {Authorization: this.oauthService.authorizationHeader()}})
.subscribe((result: any) => {
console.log("provider result", result)
resolve(result);
},
(error) => {
reject(error);
});
});
}
在第一个组件上,console.log("provider result", result) 语句显示此结果:
但是,在第二个组件上,突出显示的 console.log 显示了以下结果:
这似乎不是后端问题,因为数据库中的所有数据和查询 return 都是正确的结果。有成千上万的用户,但其中 none 个用户有此问题,当前用户除外。
此错误导致 table 上没有显示任何数据,例如:
我试过在不同的客户端上请求数据,但是 none 其中有这个问题。独占该用户
此外,当尝试使用 forEach 迭代 console.log 数组时,显示了正确的信息。但是,当尝试 console.log 整个对象时,我们用于 table 的主要字段一直显示为 Nan。
result.forEach(element => {
console.log("foreeach",element.amountPaid)
});
如果从 http.get
调用返回的数据确实正确,则从服务返回的对象有可能稍后被 [=11= 之后触发的代码操纵] 被调用。
因此,当您尝试在控制台中查看 result
对象时,您将看到该操作的结果,而不是 console.log
调用期间的对象。这可以解释为什么您在 foreach
打印期间看到正确的值,因为控制台打印的是数字文字 - 而不是对象,但是它们很可能会被承诺解决时触发的代码更改。
因此,我建议检查使用 getAllPosting
结果的代码。