2017-09-04 2 views
1

나는 반응이있는 메시지를 추가하고 싶지만 반응은 특정 순서를 원한다. 문제는 그 메시지를 추가하기 위해 명령을 실행할 때 반응이 무작위로 추가 될 때입니다.주문 불화에서의 반응 js

코드 :

 case "helptest": 
 
\t indexTest = 0; 
 
\t comandUser = message.author.username; 
 
\t message.channel.send(mesajeTest[indexTest]).then(function (message) { 
 
\t \t message.react("⏪") 
 
\t \t message.react("▶") 
 
\t \t message.react("◀") 
 
\t \t message.react("⏩") 
 
\t }); 
 
\t break;

내가 코드에 순서는 반응 메시지에있을 것을 모든 솔루션을 원하는?

답변

2

비동기 기능 문제를 해결

\t \t case "helptest": 
 
\t indexTest = 0; 
 
\t comandUser = message.author.username; 
 
\t message.channel.send(mesajeTest[indexTest]).then(async function (message) { 
 
\t \t await message.react("⏪") 
 
\t \t await message.react("◀") 
 
\t \t await message.react("▶") 
 
\t \t await message.react("⏩") 
 
\t }); 
 
\t break;

0

정확하게 send 함수가 반환하는 것은 무엇입니까? 무슨 약속? 어쩌면 다중 약속은 첫 번째 콜백이 끝나기 전에 해결됩니다.

Promise.each()을 사용해 보셨습니까?

Promise.each() 반복이 연속적으로 발생합니다. iterator 함수가 promise 또는 thenable을 리턴하면 다음 반복을 계속하기 전에 promise의 결과를 기다린다.