99

$q.when有人可以解释一下AngularJS是如何工作的吗?我正在尝试分析如何$http工作并发现了这一点:

var promise = $q.when(config);

这是来自 Chrome 控制台的配置对象:

Object {transformRequest: Array[1], transformResponse: Array[1], cache: Object, method: "GET", url: "/schedule/month_index.html"…}
cache: Object
headers: Object
method: "GET"
transformRequest: Array[1]
transformResponse: Array[1]
url: "/schedule/month_index.html"
__proto__: Object

接下来发生什么?这个对象如何得到解决或拒绝?

4

1 回答 1

116

调用$q.when接受一个 Promise 或任何其他类型,如果它不是一个 Promise,那么它将把它包装在一个 Promise 中并调用 resolve。如果你向它传递一个值,那么它永远不会被拒绝。

文档

将一个可能是值或(第 3 方)then-able 承诺的对象包装到 $q 承诺中。当您处理可能是也可能不是承诺的对象,或者如果承诺来自无法信任的来源时,这很有用。

于 2013-06-13T11:58:52.393 回答