Javascript 有序反应

Javascript 有序反应,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我想添加一条带有反应的消息,但我希望反应有一定的顺序。问题是,当我执行命令添加该消息时,反应会随机添加 代码: 案例“帮助测试”: indexTest=0; comandUser=message.author.username; message.channel.send(mesajeTest[indexTest]),然后(function(message){ 消息。反应(“⏪") 消息。反应(“▶") 消息。反应(“◀") 消息。反应(“⏩") }); break;您的send函数究竟返回了什

我想添加一条带有反应的消息,但我希望反应有一定的顺序。问题是,当我执行命令添加该消息时,反应会随机添加

代码:

案例“帮助测试”:
indexTest=0;
comandUser=message.author.username;
message.channel.send(mesajeTest[indexTest]),然后(function(message){
消息。反应(“⏪")
消息。反应(“▶")
消息。反应(“◀")
消息。反应(“⏩")
});

break;
您的send函数究竟返回了什么?什么承诺?在第一个承诺的回调完成之前,可能会解决多个承诺

你试过使用吗

使用Promise.each()迭代是连续进行的。如果迭代器函数返回一个Promise或thenable,则在继续下一次迭代之前将等待该Promise的结果


用异步函数解决了这个问题

案例“帮助测试”:
indexTest=0;
comandUser=message.author.username;
message.channel.send(mesajeTest[indexTest])。然后(异步函数(message){
等待消息。反应(“⏪")
等待消息。反应(“◀")
等待消息。反应(“▶")
等待消息。反应(“⏩")
});

break;
正如OP所说,接受的答案适用于这个特定的情况,但是我遇到了一个类似的问题,但是我的表情符号是生成的,所以在一行中键入它们不是一个选项。所以我自然地尝试查看它们,并及时等待每一个。然而node似乎对此很聪明,并优化了代码以并行运行而不是按顺序。我最终不得不使用reduce将所有承诺折叠成一个承诺,如下所示:

[...array of emojis...].reduce((promise, emoji) => promise.then(() => message.react(emoji)), Promise.resolve());
尽管有一个公认的答案,我还是将这个答案留在这里,希望其他人会觉得它有用