Why is the property players
gone from the result of an async call?
let getTickets = (userId) => {
return new Promise((resolve, reject) => {
let sql = util.format('select ticketId,number from ticket_Numbers where userId="%s"', userId);
db.query(sql)
.then(data => { resolve(data.rows); })
.catch(err => { console.log(err.stack) });
});
}
let getSameTicketPlayers = (tickets) => {
for (let ticket of tickets) {
db.query(util.format('select userId,number from ticket_numbers where ticketId="%s"', ticket.ticketId))
.then((players) => { ticket.players = players.rows; });
}
return new Promise((resolve, reject) => {
resolve(tickets);
});
}
exports.myTickets = (userId, cb) => {
getTickets(userId).then(getSameTicketPlayers).then(tickets => {
console.log(tickets); //tickets has players property here
console.log(JSON.stringify(tickets)); // players property is gone, why?
cb(tickets);
});
}