2017-06-25 4 views
0

Ich versuche, eine angular 2 Anwendung zu bauen, habe ich 2 http Anrufe in NgOnInit, die nicht gleichzeitig laufen kann, möchte ich einige Sekunden schlafen oder die erste Anfrage dann die zweite ausführen. Hier ist mein CodeSleep nach HTTP-Anfrage Winkel 2

public ngOnInit(): void { 


    this._service.getPlant().subscribe(plants => { 
     for (var i=0; i<plants.length; i++) 
    for (var name in plants[i]) { 
     this.plants.push(plants[i][name]); 
    } 
    }); 


this._service.getDept().subscribe(depts => { 
     for (var i=0; i<depts.length; i++) 
     console.log(depts[i]) 
    for (var name in depts[i]) { 
     this.depts.push(depts[i][name]); 
    } 
    }); 



    } 

Jede Lösung?

+0

warum "das kann nicht gleichzeitig laufen"? –

+0

Ich habe ein Problem in meinem Backend node.j bei der Verbindung zu SQL Server wirft es Globale Verbindung existiert bereits. Rufen Sie zuerst sql.close() auf. –

+1

Die Frage sollte dann lauten: "Wie behebe ich meinen NodeJS-Code?". Sie würden nicht fragen, wie man ein Auto auf nur zwei Rädern fährt, weil Sie zwei flache Reifen haben, oder? Du würdest die platten Reifen reparieren. –

Antwort

0

Sie können getDept() ausführen, nachdem Sie eine Antwort von getPlant() erhalten haben.

public ngOnInit(): void { 

    this._service.getPlant().subscribe(plants => { 
     for (var i = 0; i < plants.length; i++) 
      for (var name in plants[i]) { 
       this.plants.push(plants[i][name]); 
      } 

     this._service.getDept().subscribe(depts => { 
      for (var i = 0; i < depts.length; i++) 
       console.log(depts[i]) 
      for (var name in depts[i]) { 
       this.depts.push(depts[i][name]); 
      } 
     }); 
    }); 

}