Javascript 对于循环,仅返回使用角度2的最后一个元素
我在mongoDb中使用angular 2。我正在为调用的API使用服务 下面是我的示例代码:Javascript 对于循环,仅返回使用角度2的最后一个元素,javascript,mongodb,angular,Javascript,Mongodb,Angular,我在mongoDb中使用angular 2。我正在为调用的API使用服务 下面是我的示例代码: this.at就是这样的令牌fdsfdffsdf… 这是授权密钥 this.flatService.getFlats(this.at).subscribe(res: Response) => { for (var i in res) { console.log("i",i); var id=res[i].USER_ID; this.user
this.at
就是这样的令牌fdsfdffsdf…
这是授权密钥
this.flatService.getFlats(this.at).subscribe(res: Response) => {
for (var i in res) {
console.log("i",i);
var id=res[i].USER_ID;
this.userService.getUserDetails(this.at,id).subscribe(users => {
this.flatsdetails.push(user);
});
}
});
首先,我调用了getFlats()
。它返回JSON值。这些值具有用户ID属性。它被传递给getUserDetails()
中的另一个函数
我安慰了id值:像这样123234getUserDetails()
在我推送另一个数组后,还返回用户JSON
用户值如下所示:anitha,Ganesan
我安慰了那些单身汉。它显示['anitha','Ganesan']
但是i
值只返回最后一个元素。为什么?
USER_ID -> USERNAME
124 -> anitha
124 -> Ganesan
我需要这样的输出:
USER_ID -> USERNAME
123 -> anitha
124 -> Ganesan
我也试着这样做:
for(var i = 0; i < res.length; i++) {
}
for(变量i=0;i
但我无法解决此问题。For循环不是异步的,所以请将其设置为forEach
this.flatService.getFlats(this.at).subscribe(res: Response) => {
angular.forEach(res, function(user, key) {
console.log("i",i);
var id=user.USER_ID;
this.userService.getUserDetails(this.at,id).subscribe(users => {
this.flatsdetails.push(user);
});
});
});
你能发布
JSON
结构吗?谢谢你的回复。不,我只传递了这样的id(234)。@vaishuani调用.getFlats(this.at)
后收到的JSON响应请发布完整结构@Alexandru IonutMihai的var
和let
都是可行的,这不是他的原因problem@AnteJablanAdamović.我正在使用mongodb this.at是令牌。我更新了我的代码。请检查一下。如果我从API中得到结果,我刚刚传递了授权密钥。你仍然不理解我,我要的是JSON RESPONSE
的res
值,这是调用数据库后得到的响应this.flatService.getFlats(this.at).subscribe(res:Response)=>{}
postres
感谢您的回复。我收到此错误,无法读取undefined.changed的属性“userService”。您还可以使用angular.forEach
@vaishuani@phaniindra.forEach
不是异步的
很乐意帮助您