$http 和 $q 有什么区别?

What is the difference between $http and $q?

a) $http 以异步方式执行 HTTP 请求,这意味着您无法确定从服务器获得答复的时间。 $q 是一项服务,可让您一个接一个地执行多个异步任务。话虽如此,他们在概念上确实没有任何共同点。

b) 考虑这样一种情况,您希望对服务器进行多个异步 HTTP 调用。您可以嵌套这些调用中的每一个(例如,在第一次调用的成功回调中进行第二次调用)。然而,您会发现自己处于接到不同数量呼叫的情况。然后,您将使用 $q 来规避嵌套代码。

c) 只要你有一个 HTTP 调用,你就应该使用 $http。每当你有很多电话时,你应该使用 $q.

一)

$http = angular 通过 http 协议访问服务器的服务。

$q = angular 实现 kris kowalkis q 库的服务 https://github.com/kriskowal/q。 它们都是 angular 服务,但没有其他共同点。

b)

$http 使用 $q 提供延迟访问(承诺)。但我不知道在什么情况下我会在 $http 上使用 $q。只要你想发出http请求。

c)

$http 使用 $q。所以他们总是一起使用。只要你想发出http请求。