TypeError:'undefined'不是对象(评估'promise.data.map')

时间:2014-04-28 08:45:45

标签: javascript angularjs unit-testing promise

我目前正在为以角度版本实现的项目创建单元测试。 1.2
我创建了一个mockService,返回一个延迟的promise,用于我的控制器测试。服务方法如下所示:

function getItems() {
    var deferred = $q.defer();
    deferred.resolve(["item1", "item2"]);
    $rootScope.$apply();

    return deferred.promise;

}

当我调用此服务方法并执行deferred.resolve时,我收到错误

TypeError: 'undefined' is not an object (evaluating 'promise.data.map')

有谁知道promise.data.map是什么以及我需要做些什么来修复错误?

1 个答案:

答案 0 :(得分:0)

以下是您问题的解决方案

在您的问题中,您试图在控制器中定义的导致问题的promise值之前调用rootScope。因此它返回未定义的值。

尝试在rootScope中的controller值之后定义承诺,这可能会修复错误消息

希望这个解决方案可以帮到你一点。