工厂返回承诺错误" getToken undefined"

时间:2017-09-30 22:40:08

标签: angularjs

我有以下服务:

app.factory('$FCMPlugin', $FCMPlugin);

        $FCMPlugin.$inject = [];

        function $FCMPlugin() {
            var service = {
                getToken: function() {
                        FCMPlugin.getToken();
                }
            };
            return service;            

          }

然后,当用户登录时,我从我的控制器调用工厂,期望一个令牌值作为返回:

$FCMPlugin.getToken()
    .then(function(token){
        console.log(token);
        $scope.user.fcmToken = token;
    })
    .catch(function(error){
        console.log('error');
    })

但我得到的是getToken未定义......为什么会这样?是否定义明确?

TypeError: Cannot read property 'then' of undefined

我也尝试过:

Factory.js

 function $FCMPlugin() {
            var service = {
                getToken: function() {
                        return FCMPlugin.getToken()
                            .then(function(token){
                                return token;
                            })
                            .catch(function(error){
                                throw error;
                            });
                }
            };
            return service;            

          }

另一次尝试,但仍然是同样的错误..

function $FCMPlugin() {
            var service = {
                getToken: function(success, fail) {
                        FCMPlugin.getToken(success, fail);

                }
            };
            return service;            

          }

控制器:

$FCMPlugin.getToken()
        .success(function(token){
            console.log(token);
            $scope.user.fcmToken = token;
        })
        .error(function(error){
            console.log('no error');
        })

错误:无法读取属性'成功'未定义的

我已经尝试过各种方式,但仍然没有...

0 个答案:

没有答案