循环即使调用功能角度也不会停止

时间:2019-11-16 21:57:42

标签: angular loops http restart

我根据插入的内容生成域列表,以实时显示列表:

<input [(ngModel)]="domain" (input)="generateList()" type="text" name="search" class="form-control" id="inp3" placeholder="Enter your domain">

这是 generateList()方法:

domainList: domainEntity[] = [];
tld = ['.com', '.net', '.org','.info','.online', '.tech', '.design', '.group']
generateList() {
      this.domainList = [];
      this.domain = this.domain[0].toUpperCase() + this.domain.slice(1);
      this.tld.forEach(t => {
        let domain = new domainEntity(this.domain.trim().split(' ').join('').concat(t), 'pending');
        this.domainList.push(domain);
      });

      for (let i = 0; i < this.domainList.length; i++) {
        this.domainService.getDomainStatus(this.domainList[i])
        .subscribe(domainAvailability => {
          this.domainList[i].domainStatus = domainAvailability.toString().split(';')[1].split('=')[1];
        },
        error => {
          const domainAvailability = error.error.text;
          this.domainList[i].domainStatus = domainAvailability.toString().split(';')[1].split('=')[1];
          console.log(this.domainList[i].domainName,'****',this.domainList[i].domainStatus);
        });
      }
  } 

问题是当我在输入中插入另一个char时,我在日志中看到上一个循环仍使用前一个输入值调用getDomainStatus(),并在完成后得到新结果。

示例::我插入“ a”,该列表包含: ['a.com','a.net','a.org',...] ,然后进入循环以检查状态。当我输入另一个'a'时,列表将变为 ['aa.com','aa.net','aa.org',...] ,但我没有任何域状态直到第一个循环从调用第一个列表的getDomainStatus()结束。

为什么循环没有重新开始?

0 个答案:

没有答案