0

我正在使用带有angularjs的firebase。我想推迟FirebaseAuthClient回调。一切正常,但如果添加,只是拒绝不起作用。请查看我的代码段。

在工厂

    auth.callback = function(error, user) {
    $timeout(function() {
        if (user) {
            deferred.resolve(user);
        } else if (error) {
            deferred.reject(error);
        } else {
            //QUESTION HERE, if this line is added, the promise 
            //will not working at all means function inside 
            //.then() will not trigger. If I comment it out
            //Everything work fine, but how can I know if use logout ?
            deferred.reject(); 
        }

    }, 0);
    return deferred.promise;
}

auth.firebaseAuthClient = new FirebaseAuthClient(firebaseRef, function(error, user) {
    auth.callback(error, user);
});

在 .run()

    firebaseAuth.callback().then(function(success){
        $rootScope.isLoggedIn = true;
    }, function(fail) {
        $rootScope.isLoggedIn = false;
    })
4

1 回答 1

1

您在 then 函数调用的失败回调中缺少 return $q.reject(reason) 代码。

它包含在$q angularjs 文档中

于 2013-06-07T18:24:26.730 回答