Jeśli spróbuję zadzwonić do moich nodejów niż to działa, ale otrzymuję różne wartości. Muszę przesłać moje parametry wyszukiwania 1-3 razy, aby uzyskać odpowiednie wyjście. Mój serwer węzła Uzyskaj właściwy parametr wyszukiwania i wyjść odpowiednią odpowiedź API, ale jeśli chcę wydrukować go do mojej aplikacji kątowej, użyje starych parametrów. Nie rozumiem zachowania.

Prośba o prośbę: Kąt -> Nodejs -> 3rd partie API -> Nodejs -> Kątowy

Czy to jest taka ścieżka? Jak mogę uzyskać bieżące dane do kątu?

APP.JS

    app.get('/url', (req, res) => {
    var name = req.query.searchname;
    console.log("Output\n---------------------------")
    console.log(req.query.searchname);
    doGetRequest(name);
    
    return res.send(data);
})

Test.service.

test(searchName){

    this.http.get<any>('http://localhost:3000/url', {
      params: {
        searchname: searchName
      }}).subscribe(data => this.totalAngularPackages = data)
    this.log();
    
  }

log(){
  console.log(this.totalAngularPackages);
}
-2
Fab Ba 17 październik 2020, 12:35

1 odpowiedź

Najlepsza odpowiedź

Zmienna this.totalAngularPackages jest przypisana asynchronicznie. Wszelkie stwierdzenia, które bezpośrednio zależą od niego muszą znajdować się w subskrypcji. Do czasu uruchamiania console.log zmienna this.totalAngularPackages jest nadal niezdefiniowana lub posiada wcześniej przypisane wartości. Możesz dowiedzieć się więcej o żądań asynchronicznych Oto.

test(searchName) {
  this.http.get<any>('http://localhost:3000/url', {params: {searchname: searchName}})
    .subscribe(data => {
      this.totalAngularPackages = data;
      this.log(); // <-- must be inside the subscription
    });
}

log() {
  console.log(this.totalAngularPackages);
}
0
Michael D 17 październik 2020, 09:41