I need to perform the function again N times in case of an error.

offer.accept(function(err) { if(err) { logger.error("Не Смог Принять Оффер: " + err.message); // вот тут мне нужно по повторно запустить функцию offer.accept } else { logger.info("Принял Оффер"); dellmoney(); logger.info("C Баланса Пользователя Списанно " + parserub + " Руб."); userbalans = 0; } } 
  • I do not understand the example. What prevents re-call offer.accept with the same parameters? - Arnial
  • mmm, I'm afraid of duplication ........, there must be a normal way - Gam-Studio

1 answer 1

Bring an anonymous function into a variable, and enjoy life:

 var count = 0; // счётчик попыток var maxTries = 3; // не более 3 var handleAccept = function(err) { if(err) { logger.error("Не смог принять оффер: " + err.message); if( count++ < maxTries) offer.accept( handleAccept); } else { logger.info("Принял оффер"); dellmoney(); logger.info("C баланса пользователя списано " + parserub + " руб."); userbalans = 0; } } offer.accept( handleAccept);