【发布时间】:2015-06-12 17:16:03
【问题描述】:
defer object promise 和 promise from $resource service 有什么区别?
我知道,在某些情况下,使用$q 服务创建deferer,然后解析响应并返回承诺。
同时其他人可能会做类似return $resource(...).get().$promise; 的事情。
什么是差异。在这两种方法之间?
【问题讨论】:
defer object promise 和 promise from $resource service 有什么区别?
我知道,在某些情况下,使用$q 服务创建deferer,然后解析响应并返回承诺。
同时其他人可能会做类似return $resource(...).get().$promise; 的事情。
什么是差异。在这两种方法之间?
【问题讨论】:
从$resource 返回的 Promise 是有人最初使用 $q.defer()(或更新更现代的 Promise 构造函数)创建的。
某人是$resource 内部使用的$http 服务 - 您正在使用他们为您创建的承诺。
通常,在使用 async 时,您只需在代码的最低级别使用 $q.defer 或 promise 构造函数 - 否则通常最好使用 promise 链接。否则你最终会是with the explicit construction anti-pattern。
【讨论】:
$resource 构建于用于 HTTP 调用的$http 之上,用于构建承诺的$q 和用于网络调用的XMLHTTPRequest。当然不是剩菜 - 有很多没有 $resource 的 $http 用例(用于调用非休息服务或不同风格的休息服务调用)和很多没有 $http 的 $q 用例(用于非 http API - 例如 $timeout 返回一个承诺)。