Angular $ q promise错误:对象不是函数

Sag*_*rma 4 angularjs angular-promise

我有一个工厂方法有$ http(异步任务),所以我使用$ q promise并发生以下错误TypeError: object is not a function@line:return $ q(funtion ....)

使用Promise API编写:

service.fetch = function(query) {
    return $q(function(resolve, reject){
        $http({ url: srcset[query], method: 'GET'}).success(function(db){
            resolve(db);
        });
    });
};
Run Code Online (Sandbox Code Playgroud)

但如果使用Deferred API编写:

service.fetch = function(query) {
    var deferred = $q.defer();
    $http({ url: srcset[query], method: 'GET'}).success(function(db){
        deferred.resolve(db);
    });
    return deferred.promise;
};
Run Code Online (Sandbox Code Playgroud)

它工作正常

我写的完全如https://docs.angularjs.org/api/ng/service/ $ q中所述

任何人都可以指出我哪里出错了.

Mut*_*att 6

您链接到的文档是最新的,可能不是正确的角度版本.之前犯了这个错误.

$ 1.2的1.2.25(稳定)文件