我有angularJs getter和setter工厂来获取processkey,setter正在按预期方式工作,并且在processKey中确实有processFactory,但是当我从控制器调用getProcessid时,它抛出了以下错误。

如何使用AngularJS解决此问题?

ctrl.js

   processFactory.setProcessId($stateParams.processId);


    processFactory.getProcessId().then(function(response){
                  var processKey = response;
                  consoel.log('PROCESSKEY GETTER',processKey)
                });


factory.js

 setProcessId: function(id){
          processKey = id;
        },
 getProcessId: function(){
          return processKey;
        }


错误

angular.js:11594 TypeError: processFactory.getProcessId(...).then is not a function

最佳答案

我猜没有异步操作,因此您可以简单地完成-

$cookies.put("", token);
var processKey = processFactory.getProcessId();


如果要在函数内执行一些异步操作,则可能要使用promise ...仍然要使控制器代码正常工作,则可以编写如下内容:

       getProcessId: function(){
                var defer = $q.defer();
                defer.resolve(processKey);
                return defer.promise;
        }

10-06 04:48