【问题标题】:Angular $q promise Error: object is not a functionAngular $q promise 错误:对象不是函数
【发布时间】:2014-11-14 00:31:22
【问题描述】:

我有一个具有 $http(async task) 的工厂方法,所以我使用了 $q 承诺并且发生了以下错误 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);
        });
    });
};

但如果使用 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;
};

效果很好

我写的和https://docs.angularjs.org/api/ng/service/$q中提到的完全一样

谁能指出我哪里出错了。

【问题讨论】:

  • 角度版本差异? code.angularjs.org/1.2.25/docs/api/ng/service/$q 不一样
  • 好的,我提到的文档是 1.3 版本,但我使用的是 1.2.25。非常感谢,请将其发布为许多人可能会犯此错误的答案
  • 为您添加了答案,以便我们将其标记为已解决

标签: angularjs angular-promise


【解决方案1】:

您链接到的文档是最新的,可能不是正确的 Angular 版本。以前犯过这个错误。

1.2.25 (Stable) Docs for $q

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    相关资源
    最近更新 更多