如何使用AngularJs工厂处理promises?

时间:2016-03-29 14:36:14

标签: javascript angularjs

我有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

1 个答案:

答案 0 :(得分:1)

我想没有asyn操作,所以你可以简单地完成 -

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

如果你想在函数内部进行一些异步操作,那么你可能想要使用promise ...如果你想让你的控制器代码工作,你可以这样写: -

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