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 结果的代码。