如果我尝试在我的 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
提交
取消