Angular 从 nodejs API 获取不同的值

如果我尝试在我的 nodeJS 上调用 get 而不是它的工作,但我得到不同的值。我必须提交我的搜索参数 1-3 次才能获得正确的输出。我的节点服务器获得正确的搜索参数并输出正确的 API 响应,但如果我想将它打印到我的 Angular 应用程序,那么它将使用旧参数。我不明白这种行为。


请求路径:angular -> nodeJS -> 3rd partie API -> nodeJS -> angular


那条路错了吗?如何获取角度的当前数据?


应用程序.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(searchName){


    this.http.get<any>('http://localhost:3000/url', {

      params: {

        searchname: searchName

      }}).subscribe(data => this.totalAngularPackages = data)

    this.log();

    

  }


log(){

  console.log(this.totalAngularPackages);

}


慕勒3428872
浏览 103回答 1
1回答

慕姐4208626

该变量this.totalAngularPackages是异步分配的。任何直接依赖于它的语句都必须在订阅内。运行时console.log,该变量this.totalAngularPackages仍未定义或保留先前分配的值。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);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript