0
問題是,「then」在「getUsernameById」完成了循環中的作業之前觸發。在循環內異步更改對象,然後返回修改的對象
var dummyObject = {
choices: [
{
votes: [
"1234",
"2143",
"4321"
]
}
]
};
Promise.each(dummyObject.choices, function(choice, i) {
dummyObject.choices[i].test = "test"; // this gets changed before 'then'
Promise.each(choice.votes, function(vote, j) {
getUsernameById(vote).then(function(username) {
dummyObject.choices[i].votes[j] = username; // this gets changed after 'then'
});
});
}).then(function() {
res.json(dummyObject);
});
甚至可以這樣做嗎?
如果您使用一些提供'Promise.each'的promises庫,請用您的問題名稱來標記您的問題。順便說一句,你確定你不錯過這裏或那裏的「回報」嗎? – 2016-09-23 11:35:40