В настоящее время у меня есть метод с именем isSpecialStatus()
, который имеет простую функцию возврата
return (this.getStatus() === 'Special')
getStatus также простая функция возврата с некоторыми условиями
if (someArray.includes('SECRET_VALUE') {
return 'Special';
} else if (someArray.includes('OTHER_VALUE') // logic that's not relevant to this question
Вместо того, чтобы иметь все эти условные операторы (фактическая логика в условных проверках проверяет более одного значения) - мы используем асинхронные вызовы БД, которая содержит список значений для каждого условия. Таким образом, мы можем сделать
this.getSpecialValueList().then(results => console.log(results) // output: 'SECRET_VALUE'
однако мой isSpecialStatus()
используется во всей кодовой базе, и мне нужно, чтобы он возвращал логическое значение true / false вместо обещания, которое преобразуется в true / false. Я пытался использовать async / await и использовать цепочку обещаний, но независимо от того, что, включая обещание в isSpecialStatus
, результат будет обещанием, а не логическим значением.
Я смотрел другие SO-посты и видел, как люди рекомендуют использовать внешние переменные, устанавливать их и вызывать isSpecialStatus
в моем случае из getStatus()
, и он должен нормально возвращаться - что нормально - но я не очень Я хочу добавить любые глобальные переменные в мой код, если я могу избежать этого, и текущая область применения этих методов потребует, чтобы переменная была глобальной в объекте окна.
Есть ли какие-либо альтернативы, кроме обещания всех моих методов, которые используют isSpecialStatus()
или глобальных переменных?