2013-05-27 6 views
79

$q.whenはどのようにAngularJSで動作するのですか? 私はどのように$http仕事を分析しようとすると、この発見だ:

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 

次に何が起こるか:

var promise = $q.when(config); 

そして、ここではクロームコンソールから設定オブジェクトがあるの?このオブジェクトがどのように解決または拒否されるのか?

+0

の$ Qの実装は、コールバックがsucessfully約束を解雇されたJavaScriptの。だから中のコールバックの周りにその単純なラッパーが –

+1

@Ajaybeniwalを解決さパターンを約束したが、渡されたこの場合、オブジェクトには、コールバックではありません。コールバックではなく、オブジェクトが渡された場合の解決方法と拒否方法 – SET

答えて

98

$q.whenを呼び出すことは、約束ではない場合は約束し、それを約束して解決します。値を渡すと決して拒否されません。ドキュメントから

:$ qを約束に値または(サードパーティ)であるかもしれないオブジェクトをラップ

その後、可能な約束。これは、約束事であろうとなかろうとしているオブジェクトを扱っている場合、または約束が信頼できないソースから来た場合に便利です。

+0

'もしあなたが値を渡すなら' - しかし、オブジェクトを渡すとどうなりますか? – SET

+8

値、オブジェクト、配列はすべて同じです。 –

+3

約束を返す関数を渡すとどうなりますか?それはそれのコールバックが解決によって送信する約束の結果のパラメータを渡すことを意味するのでしょうか? –

関連する問題