обновление var до уже выполненного оператора if

#javascript

#javascript

Вопрос:

Я закодировал некоторый оператор if, который должен перезаписать переменную (конечно, если это true), но это не работает…

В начале файла у меня есть эти перезаписывающие операторы if, которые ‘sentOfferChanged’ обычно проверяют, что что-то происходит только из какой-либо команды (пример: я должен сказать «!trade», чтобы продолжить и вызвать предложение, команда кодируется с помощью операторов if), которые записаны где-то под этим кодом, поэтому сначала он сохраняется внутри этой переменной «», но когда я напишу команду и приму сделку, тогда это ‘sentOfferChanged’ будет выполняться, но не перезапишет ту команду, которую я хочу перезаписать. Итак, как я могу автоматически обновить его где- нибудь, где у него было первое значение, и не перезаписывать?

 var ifvartruefalse = "";
manager.on('sentOfferChanged', function(offer, oldState) {
 if (TradeOfferManager.ETradeOfferState[offer.state] === "Declined") {
  ifvartruefalse = "false";
  console.log('trade offer declined');
  return;
} if (offer.itemsToGive.length == 0){
    if (offer.state == TradeOfferManager.ETradeOfferState.Accepted){
      console.log("trade offer accepted");
     ifvartruefalse = "true";

    }
  }
});
  

под ними у меня есть оператор if, который выполняется в зависимости от того, как они перезаписываются, перед ними находится команда, созданная с помощью операторов if, поэтому, только если я напишу команду, это произойдет

 console.log(ifvartruefalse);

if (ifvartruefalse === "false"){
  message.reply('<:false:750799883572609245> **Trade was declined, deleting the coinflip**');
  return;
}

if (ifvartruefalse === "true"){
  message.channel.send('<:true:750799921497505913> **Trade was succesfully confirmed**, generating random ticket from 0 to 100');
  

это действительно сложно объяснить, поэтому извините. Если ты чего -то не понимаешь, скажи мне .

. Просто небольшой пример того, что он делает неправильноконсоль и сообщения Когда в консоли сделка принята, бот должен сказать в сообщениях что-то вроде «сделка была принята»

Комментарии:

1. Вам действительно нужно выбрать лучшие имена переменных. Кроме того, используйте let или const вместо var .

2. Я не вижу проблемы с назначениями переменных. Должно быть, что-то в вашем приложении работает не так, как ожидалось.

3. если я поделюсь кодом, не могли бы вы его найти??

4. Возможно, это потому, что вы устанавливаете значение в пустую строку, а затем проверяете строку false . Они не эквивалентны, и если ни одно из ваших if условий оператора не применяется, оно не будет обновлено.

5. я думаю, что это хорошо, потому что false находится в строках