Javascript 从isPresent函数量角器重新运行布尔承诺

Javascript 从isPresent函数量角器重新运行布尔承诺,javascript,selenium,protractor,Javascript,Selenium,Protractor,我做了一个函数来返回一个布尔值,以知道元素是否存在,但我得到 this is the status: false 我如何才能得到唯一正确或错误的响应,请帮助,我使用的是if条件,但它显示了该响应 async IsPresent(element){ try{ await element.isPresent().then(function(status){ console.log("this is the status:

我做了一个函数来返回一个布尔值,以知道元素是否存在,但我得到

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);
        }
    };

该函数中有许多不必要的代码。您可以使用以下方法实现相同的功能

async IsPresent(element){
    try {
        return await element.isPresent();
    }
    catch (err) {
        return console.log(err);
    }
};
首先要注意的是,当一个函数被声明为
async
时,您可以使用
wait
关键字暂停执行,直到任何相关的承诺得到解决。实际上,您在这里使用了两种不同的方法来解析承诺(
promise.resolve
.then()
),而只需要等待


第二点要注意的是,无论如何都要返回true或false,以便可以直接从函数中返回。

这是否回答了您的问题?您好,不,它不起作用,但我通过函数更新了我可以得到布尔值响应,但是调用函数时它无法识别布尔值响应,我更新了上面的帖子,谢谢您新的IsPresent函数似乎没有返回任何内容,这就是为什么调用函数时无法访问布尔值的原因。你在我发布的内容中遇到了什么问题?