Как ввести обещание в функцию без обещаний? - PullRequest
0 голосов
/ 15 мая 2019

В настоящее время у меня есть метод с именем 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() или глобальных переменных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...