2017-06-09 22 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); 
    }) 
})