关闭似乎不起作用

时间:2016-08-11 11:02:41

标签: javascript typescript protractor

我有这个:

private isLogged(): boolean {
    //check cookie here
    let logged: boolean;
    browser.manage().getCookies().then((cookies: IWebDriverOptionsCookie[]) => {
       if (cookies.length == 0) {
        console.log('Is Not Logged');
        console.log('My cookies', cookies);
        logged = false;
    });
    console.log('isLogged: ' , logged);
    return logged;
}

当我运行它时,记录的是:

   undefined

我进入了Not Not Logged和我的cookies里面。

我是不是错过了或者只是累了而且看不到简单的错误?

1 个答案:

答案 0 :(得分:0)

当您调用isLogged()函数并从中返回时,browser.manage().getCookies()承诺尚未解决 - 因此,logged的值从未设置过。

相反,让isLogged返回一个承诺:

private isLogged(): boolean {
    return browser.manage().getCookies().then(function (cookies) {
      if (cookies.length == 0) {
        console.log('Is Not Logged');
        return false
      } else {
        console.log('Is Logged');
        console.log('My cookies', cookies);
        return true
      }
    });
}

并且,一旦需要值就解决:

isLogged().then(function (isLogged) {
    console.log(isLogged);
});

为了更好地理解Protractor中的承诺,请参阅Promises and the Control Flow文档页面。