Angular Array包含元素,但仍返回null的长度

问题描述 投票:0回答:4

在组件的Angular 8中,我正在运行以下行:

  console.log(this.array);

在浏览器中,在开发人员模式下,我在控制台上看到以下结果:

enter image description here

所以它显然具有一些内容。以下行在控制台上写为“ 0”:

console.log(this.array.length);

这里是堆栈闪电代码:https://stackblitz.com/edit/angular-ivy-g57vnv

在应用程序组件中,array和array.length在控制台上记录。

数组的内容创建如下:在service.service.ts中,将GET身份验证请求提取到Crowdvalley托管的示例后端。由于cv-auth标头不是正确的标头(故意),因此响应是错误。如果响应中不包含结果“成功”,则将字符串“ false”推入数组(请参阅ServiceService)。如果在开发人员模式下查看Web应用程序(https://angular-ivy-g57vnv.stackblitz.io),则会看到该数组具有读取的内容,但仍然会写成其长度为0。

为什么?如何调查真实长度?如何从组件访问其内容?

在组件的Angular 8中,我正在运行以下行:console.log(this.array);在浏览器中,在开发人员模式下,我在控制台上看到以下结果:因此,它显然具有一些内容。 ...

arrays angular typescript angular-components console.log
4个回答
0
投票

以下堆栈闪电代码:https://stackblitz.com/edit/angular-ivy-g57vnv控制台记录空数组。请再次检查。


0
投票

将isLoggedIn方法更改为:-


0
投票

这是因为ServiceService.isLoggedIn()返回一个数组,进行异步调用,然后对该数组进行突变。这是错误的模式-isLoggedIn()应该返回异步的内容,或者是Promise,或者更好的是(毕竟我们在Angular项目中)是Observable。


0
投票

您正在调用isLoggedIn()方法,就好像它是同步的,而不是同步的-它执行fetch(),并返回一个promise。

© www.soinside.com 2019 - 2024. All rights reserved.