我有数组'结果'来自数据库的消息,现在我想从数据库中为此消息添加昵称。我从数据库接收的数组按日期排序,但是当我使用此代码时,结果是随机顺序。
Promise.each(results, function(message) {
users.db.find({id64: message.id64}).then(function(user) {
message.nick = user[0].nick;
socket.emit('chat message toClient', message);
})
})
我可能从错误的方面接受这个。
答案 0 :(得分:0)
通过设计对排序数据执行异步操作不会以相同的顺序生成结果。您可以在另一端按日期重新排序,或者不尝试异步执行操作。
同步:
results.forEach(results, function(message) {
users.db.find({id64: message.id64}).then(function(user) {
message.nick = user[0].nick;
socket.emit('chat message toClient', message);
})
})
答案 1 :(得分:0)
我认为在users.db ...
之前需要一个return关键字