Eh bien j'ai cette fonction ici qui fonctionne sur des intervalles et ce qu'il fait est, quand il fonctionne, il définit 2 settimeout.fonction asynchrone settimeout appelé avant le temps
est ici le problème, une fonction asynchrone qui doit être appelée après la 2ème temps est appelé avant que le délai d'attente est 2ème même déclenché. C'est mon code.
var runner = Interval.run(function() {
//-212965881
bot.sendMessage('-212965881', "Drop usernames now").then(function(){
ready = 1;
list = {};
console.log(ready);
setTimeout(function(){
return bot.sendMessage('-212965881',"Round has begun. Please start liking now. Leech check will begin in 1 minute");
}, 10000);
}).then(function(){
ready = 0;
setTimeout(function(){
return bot.sendMessage('-212965881',"Leech check has begun!");
}, 15000);
}).then(function(){
//This one fires before 15 seconds
let msg = {chat:{}};
msg.chat.id = '-212965881';
return bot.event('/check', msg);
}).catch(function(err){
console.log(err);
});
}, 20000);
Vous ne savez pas pourquoi cela se produit. Peut-être que j'y vais de la mauvaise façon. Quelqu'un peut-il jeter un peu de lumière là-dessus? Merci
Possible duplicata de [Comment renvoyer la réponse d'un appel asynchrone?] (Https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous- call) –
'setTimeout()' planifie quelque chose de fonctionner asynchrone plus tard, il ne met pas en pause l'exécution. La valeur de retour de n'importe quelle fonction que vous passez à 'setTimeout()' est également ignorée. – nnnnnn