Angular $ q. ne zaman çalışır?


96

Biri bana $q.whenAngularJS'de nasıl çalıştığını açıklayabilir mi? Nasıl çalıştığını analiz etmeye çalışıyorum $httpve şunu buldum:

var promise = $q.when(config);

Ve işte Chrome konsolundan yapılandırma nesnesi:

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

Sonra ne olur? Bu nesne nasıl çözülür veya reddedilir?


Geri arama başarıyla çözüme kavuşturulacağını vaat ateşlendiğinde $ q uygular javascript .bu içinde desenleri geri aramaları etrafında onun sadece basit bir sarıcı söz
Ajay Beniwal

1
@Ajaybeniwal, ancak bu durumda nesne geçti, geri arama değil. Geri arama değil, nesne geçtiğinde nasıl çözüldü / reddedildi?
SET

Yanıtlar:


115

Arama $q.whenbir söz veya başka bir türden alır, eğer bir söz değilse, o zaman bir söze sarar ve karar verir. Ona bir değer iletirseniz, asla reddedilmeyecektir.

Dokümanlardan:

Değer olabilecek bir nesneyi veya (3. taraf) o zaman mümkün olan bir sözü bir $ q vaadine sarar. Bu, vaat olabilecek veya olmayabilecek bir nesneyle uğraşırken veya vaat güvenilemeyecek bir kaynaktan geliyorsa kullanışlıdır.


If you pass a value to it- ama ya nesneyi geçersem?
SET

11
değer, nesne, dizi hepsi aynı.
Derek Ekins

3
bir söz veren bir işlevi geçersem ne olur? Bu, daha sonra geri aranmasının, çözümle gönderilen vaat sonuç parametresinden geçeceği anlamına mı geliyor?
Onur Topal

3
Eğer bir işlev geçmesi derken Onur, bir fonksiyon nesnesi olarak demek: $q.when(myfunc): mu, yoksa geçen işlevini çağırarak $q.when(myfunc())? Birincisinin tam olarak ne yapacağını bilmiyorum ... ikincisi myfunc()önce başvuracak ve geri dönen vaadi | değeri iletecektir .when().
jrista
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.