Warten auf mehrere Ereignisse

7

Ich entwickle gerade eine App hauptsächlich für Zwecke der Selbsterziehung und da ich noch nicht ganz an js gewöhnt bin, könnte ich Hilfe für mein Problem gebrauchen:

In meiner App verwende ich eine Javascript-Bibliothek (jqMobi), die für DOM-Manipulation, Seitenübergänge, Ajax-Aufrufe usw. verwendet wird, und ich nutze auch phonegap, um auf Gerätefunktionen wie den Geolocation zuzugreifen.

Wenn ich meine App starte, möchte ich die Geolokalisierung des Geräts erhalten, eine AJAX (JSONP) -Anfrage an meinen Server senden (einschließlich der Geolokalisierung des Geräts), die ein Array von JSON-Objekten zurückgibt, die ich zum Erstellen verwenden werde eine Liste auflisten.

Bevor ich den Geolocation bekommen kann, muss ich warten, bis phonegap geladen wird. Und bevor ich jqMobi benutze, um den Ajax aufzurufen und die Antwort zu verarbeiten, muss ich darauf warten, dass sie auch geladen wird.

Ich muss also im Grunde Ereignisse hören

%Vor%

Wie führe ich eine Funktion aus, sobald diese beiden Ereignisse ausgelöst wurden und nicht vorher?

Wenn ich jQuery verwenden würde, würde ich seine $ .Deferred-Objekte und seine When ... Then-Funktion verwenden, aber da ich keinen Zugriff darauf habe, suche ich nach einer Alternative.

Vielen Dank im Voraus für Ihre Hilfe!

    
marius2k12 19.12.2012, 20:39
quelle

2 Antworten

1

Probieren Sie das aus,

%Vor%     
ppsreejith 19.12.2012, 20:44
quelle
18

Auf den ersten Blick würde so etwas funktionieren:

%Vor%

Aber ist nicht erweiterbar (was ist, wenn Sie möchten, dass ein drittes Ereignis wartet?). Ein Zähler würde funktionieren:

%Vor%

Ist erweiterbarer, aber das setzt voraus, dass die Ereignisse nur einmal ausgelöst werden. Wie auch immer, dies sind die Primaten, die die Art der Flusskontrolle steuern können, nach der Sie fragen, und alles andere ist (größtenteils) eine Abstraktion auf höherer Ebene bei diesen beiden.

    
syazdani 19.12.2012 20:44
quelle

Tags und Links