web-dev-qa-db-ja.com

Angular $ q.whenはどのように機能しますか?

AngularJSで$q.whenがどのように機能するかを説明してください。私は$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

次は何が起こる?このオブジェクトはどのように解決または拒否されますか?

91
SET

$q.whenを呼び出すと、promiseまたは他のタイプが使用されます。promiseでない場合は、promiseでラップし、resolveを呼び出します。値を渡した場合、拒否されることはありません。

ドキュメントから:

値または(サードパーティの)then-able promiseである可能性のあるオブジェクトを$ q promiseにラップします。これは、プロミスである場合とそうでない場合があるオブジェクトを処理している場合、またはプロミスが信頼できないソースからのものである場合に役立ちます。

109
Derek Ekins