#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 находится в строках