HttpClient的认购中为了调试

问题描述 投票:-1回答:1

我有以下TS-方法。当我设置的两个断点#1和#2首先击中#1我的所有对象之后,它击中#2我的所有问题。

在我看来,应该是在另一份订单。

  public getBuild(val) {
    let j_jobs: any;
    for (const project of val.projects) {
      for (const job of project.jobs) {
        this.httpService.get(job.url + 'api/json',
          {
            headers: new HttpHeaders({
              'Content-Type': 'application/json',
              'Authorization': 'Basic TOKENREMOVED'
            })
          })
          .subscribe(
            data => {
              j_jobs = data; //#2
            }
          );
      }
    }
    console.log(j_jobs); // #1
  }```

Can anybody tell me, why angular works like that?


angular typescript angular-httpclient
1个回答
0
投票

这是异步的编码。

在Javascript中,你只能有一个线程。

当您使用异步代码,如许诺,观测量和AJAX,你问你的应用程序,使一些东西,然后做一些事情,而等待的过程来完成,一旦过程结束,继续回调。

这允许你创建无阻塞的过程。试想一下,如果你有等待你的HTTP调用来完成,并且他们采取了各10数秒不是很人性化!

在这种情况下,你可以使用观测量从RxJS,并进行HTTP调用。因此,它是异步的!

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