我有一个工厂方法,它有$ 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);
});
});
};
但如果使用延迟API:
编写service.fetch = function(query) {
var deferred = $q.defer();
$http({ url: srcset[query], method: 'GET'}).success(function(db){
deferred.resolve(db);
});
return deferred.promise;
};
工作正常
我的写作与https://docs.angularjs.org/api/ng/service/ $ q
中提到的完全相同任何人都可以指出我哪里出错了。