【发布时间】:2025-12-30 05:20:13
【问题描述】:
我正在使用 node.js。
在向客户端发送响应之前,我必须在对象中添加新元素。
user.getMatch(req.user, function(err, match){
for( k=0; k<match.length; k++){
var userId = {
id : match[k].match_id
};
var user = new User(userId);
console.log('k: ' + k);
user.getUserInfo(function(err2, info){
console.log('k here: ' + k);
if(info){
match[k].foo = info[0].foo;
}
});
}
var response = {
data : match
};
res.json(response);
});
我想将 user.getUserInfo 中的元素“foo”添加到 user.getMatch 返回的对象“match”中。然后将所有数据作为响应发送给客户端。
但它出错了,因为 user.getUserInfo 内部的“k”不等于外部的“k”。 我不知道为什么两个“k”不相等。
以及在执行循环后我将如何向客户端发送响应。
感谢您的帮助!
【问题讨论】:
-
由于 javascript 是异步的,您将获得 k 的随机值。而不是为此使用 for 循环,您可以使用异步模块
-
@V31,为什么是随机的?调用回调时,k 将始终等于 match.length。
标签: javascript node.js javascript-objects