2017-06-09 30 views
0

我有数据库中的消息数组'结果',现在我想从数据库中为这个消息添加昵称。我从数据库接收的数组按日期排序,但是当我使用此代码时,结果以随机顺序排列。蓝鸟的'每个'函数中的随机顺序

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

我想你users.db之前需要一个return关键字...

+0

哈哈谢谢!只是一个字...我现在明白它是如何工作的。 – sebafudi

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); 
    }) 
})