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


95

$q.whenAngularJSでどのように機能するかを誰かが私に説明できますか?私はどのように$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

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


$ qはpromiseパターンを実装し、JavaScriptのコールバックの単純なラッパーです。コールバックが正常に実行されると、promiseが解決されます
Ajay Beniwal 2013年

1
@Ajaybeniwal、ただしこの場合、コールバックではなくオブジェクトが渡されます。コールバックではなくオブジェクトが渡された場合、どのように解決/拒否しますか?
2013年

回答:


113

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

ドキュメントから:

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


If you pass a value to it-しかし、オブジェクトを渡すとどうなりますか?
2013年

11
値、オブジェクト、配列はすべて同じです。
Derek Ekins 2013年

3
promiseを返す関数を渡すとどうなりますか?それはそのときのコールバックがresolveによって送信されたpromise結果パラメーターを渡されることを意味しますか?
Onur Topal 2014年

3
Onur、あなたが関数を渡すと言うとき、あなたは関数オブジェクトとして意味します$q.when(myfunc)か:、またはあなたが渡す関数を呼び出すことによって:$q.when(myfunc())?前者が何をするのか正確にはわかりません...後者がmyfunc()最初に呼び出し、返されたpromise | valueをに渡します.when()
jrista 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.