无法获得未定义的属性

无法获得未定义的属性

本文介绍了无法获得未定义的属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试为我的角度httpbased服务运行单元测试:

Trying to run a unit test for my angular httpbased service:

angular.module('myApp').factory('httpService',function($http)
{
  return {
    sayHello:function(usr){
      $http.get('/api/doit').then(
        function(result){
        return 'hello '+usr;
      });
    }
  }
});

这是测试:

it('should say hello from httpservice', function() {

        var returnData = 'hello Tomss';

        httpBackend.expectGET('/api/doit').respond(returnData);

        var returnedPromise = httpService.sayHello('Tom');

        var result;
        returnedPromise.then(function(response) {
          result = response;
        });

        httpBackend.flush();
        expect(result.data).toEqual('hello Tom');

});

我收到错误消息:

TypeError: Unable to get property 'then' of undefined or null reference

如何解决这个问题?

plunkr:

推荐答案

return {
  sayHello:function(usr){
    return $http.get('/api/doit').then(
      function(result){
        return 'hello '+usr;
    });
  }
}

注意sayHello函数的返回。

Notice the return in sayHello function.

这篇关于无法获得未定义的属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-30 08:08