如果我尝试在我的 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);
}
添加回答
举报
0/150
	提交
		取消
	