蓝鸟的随机顺序'每个'函数

时间:2017-06-09 22:02:26

标签: node.js bluebird

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

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

我可能从错误的方面接受这个。

2 个答案:

答案 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关键字