Ich habe eine Reihe von Facebook Gruppen-IDs, die ich in synchroner Reihenfolge einchecken möchte, und wenn eine fehlschlägt, um zum nächsten zu springen. Wenn alle fertig sind, möchte ich alle Ergebnisse an meinen Server senden.
Der Code unten erklärt den Kern von dem, was ich erreichen will (natürlich funktioniert es nicht):
var groups = [1111,2222,3333];
var feed_collection = [];
// Unfortunately this for loop does not wait for the FB api calls to finish before looping to next
for(var x = 0; x < groups.length; x++){
FB.api("/"+groups[x]+"/feed", function(response, err){
feed_collection += response;
});
}
// Send the feed_collection to server
feed_collection.sendToServer();
Wie kann ich meine for-Schleife erhalten zu warten? Ich weiß, dass ich $q.all()
verwenden kann, aber ich bin fest, wie man die Versprechen generiert und sie zu einem promise_array
speichern. Dieser Code ist auf der Client-Seite und ich benutze AngularJS 1, aber ich bin offen für jeden Ansatz. Mucho Gracias!
Wie würde ich dies in einer for-Schleife ausführen lassen? Ist es so einfach, die 'getGroupFeed' -Funktion in eine for-Schleife zu bringen? –
Dies ist immer noch nicht synchron. – Avinash
@KangzeHuang, Sie müssen keine for-Schleife verwenden. Dieser Ansatz liefert Ihnen, was Sie für promise_array fragen, und es ist lesbarer und weniger fehleranfällig als for-Schleife. – Avinash