Возврат логического обещания от транспортира функции isPresent - PullRequest
0 голосов
/ 19 марта 2020

Я делаю функцию для возврата логического значения, чтобы узнать, присутствует элемент или нет, но я получаю

this is the status: false

Как я могу получить только истинный или ложный ответ, пожалуйста, помогите, я я использую условие if, но оно показывает, что ответ ...

  async IsPresent(element){
        try{
            await element.isPresent().then(function(status){
                console.log("this is the status: " + status);
                return status; 
            });
        }
        catch(err){
            return console.log(err);
        }
    };

это функция, в которой я вызываю IsPresent

async ClickSomething(){
        try{
            await this.helpers.ClickElement(oneElement);

            if(await this.helpers.IsPresent(anotherElement) == false){
                //Do something
            }else{
               //Do something esle
        }
        catch(err){
            return console.log(err);
        }
    };

1 Ответ

0 голосов
/ 19 марта 2020

В этой функции много ненужного кода. Вы можете достичь той же функциональности, используя следующее

async IsPresent(element){
    try {
        return await element.isPresent();
    }
    catch (err) {
        return console.log(err);
    }
};

Первое, на что следует обратить внимание, - когда функция объявлена ​​async, вы можете использовать ключевое слово await, чтобы приостановить выполнение до тех пор, пока какой-либо связанный обещание решено. На самом деле вы используете два разных подхода для разрешения обещаний (promise.resolve и .then()), когда необходимы только ожидания.

Второе, на что следует обратить внимание, это то, что isPresent в любом случае возвращает true или false так что это может быть напрямую возвращено из вашей функции.

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