Mi bot envía 3 mensajes uno tras otro y necesito guardar sus ID, porque necesito editarlos más tarde. Si hago algo como esto:
message.channel.send(`${acc[player].output.slot1}`).then((m) => { acc[player].ids.msg1 = m.id }) message.channel.send(`${acc[player].output.slot2}`).then((n) => { acc[player].ids.msg2 = n.id }) message.channel.send(`${acc[player].output.slot3}`).then((o) => { acc[player].ids.msg3 = o.id })los tres tendrán la identificación del tercero. Ralentizar el proceso o hacerlo paso a paso no ayudó.
No estoy seguro de por qué las 3 entradas darían como resultado el mismo valor, sin embargo, tal vez manejar las promesas de manera diferente podría ayudar. Intente esperar a Promise.all() con una matriz de mensajes enviados y asigne todos los resultados a la identificación.
const { send } = message.channel; try { (await Promise.all([ send(`${acc[player].slot1}`), send(`${acc[player].slot2}`), send(`${acc[player].slot3}`) ])).forEach((msg, i) => { acc.player.ids[`msg${i + 1}`] = msg.id; }); } catch (err) { console.error(err); }