为了账号安全,请及时绑定邮箱和手机立即绑定

Angular 从 nodejs API 获取不同的值

Angular 从 nodejs API 获取不同的值

慕勒3428872 2023-05-19 14:49:39
如果我尝试在我的 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);}
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

该变量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);

}


查看完整回答
反对 回复 2023-05-19
  • 1 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信