量角器和Angular的$ q.defer

Mga*_*auk 1 deferred angularjs protractor angular-promise

我有这样的角度代码:

$scope.logout = function() {
    console.log(1);
    clearCookies().then(function() {
        console.log(2);
        $state.go('loginScreen');
   });
};

function clearCookies() {
    var defer = $q.defer();
    if(something) {
       sendSomeRequest().then(function() {
           defer.resolve();
       });
    } else {
        defer.resolve();
    }
    return defer.promise;
}
Run Code Online (Sandbox Code Playgroud)

$ scope.logout函数调用元素的ng-click.我有测试:

element(by.css('[class="logout-button"]')).click();
Run Code Online (Sandbox Code Playgroud)

我永远不会在控制台中看到"2",通过我认为"然后"回调在由量角器触发时永远不会被触发.它永远不会做出"$ state.go"动作.也许我错过了什么?感谢您的任何帮助.

yeo*_*uuu 5

你应该退还defer.promise;

您可以在官方文档中找到有关$ q的更多信息.