2013-03-06 10 views
6

Mam funkcję, która wywołała z innymi obiektami i kiedy moja aplikacja jest ładowana, pobierz parametr, a funkcja powinna poczekać na wywołanie z całym obiektem, a następnie wykonać to za pomocą obietnicy obietnic i mogę zapewnić, że cały obiekt jest załadowany, ale Nie wiem o liczbie obiektów i nie chcę ustawić limitu czasu ładowania. Nie mówię o konkretnej technologii, takiej jak jquery i potrzebuję algorytmu.Implementator obiecuje wzorzec

pseudokod:

 function loadWidget(id){ 
     list.push(id); 
     //here I should ensure all Widget is loaded 


      } 

w innej aplikacji zgłoszę

app.loadWidget.add(widget1.id); 
    . 
    . 
    .  
    app.loadWidget.add(widget2.id); 
+5

wow! to było długie zdanie. – fsw

+0

Pytanie wymaga trochę korekty mojego przyjaciela, zwłaszcza gramatyki. – kiwicomb123

Odpowiedz

12

Jeśli nie chcesz, gotowe rozwiązania i zamiast chcesz realizować wszystkie algorytmy sobie wtedy czytać gazet przywoływanych w artykule z Wikipedii: Futures and promises oraz specyfikacjami dla Promises/A i Promises/A+.

Aby upewnić się, że robisz to dobrze, przeczytaj artykuł You're Missing the Point of Promises autorstwa Domenica Denicoli i zapoznaj się z Compliances tests for Promises/A+.

Jeśli, z drugiej strony, zdecydujesz, że nie warto ponownie wymyślać koła (chyba że chodzi o edukację - w którym to przypadku z całą pewnością wymyślono jak najwięcej kół), to spójrz na RSVP.js, lekka biblioteka udostępniająca narzędzia do organizowania asynchronicznego kodu. RSVP.js jest używany na przykład przez Ember.js.