У меня есть массив идентификаторов группы Facebook, которые я хочу проверить в синхронном порядке, а если один не удается, перейдите к следующему. Когда они закончат выполнение, я хочу отправить все результаты на свой сервер.
Код ниже объясняет суть того, что я хочу сделать (конечно, это не работает):
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();
Как я могу получить за цикл ждать? Я знаю, что могу использовать $q.all()
, однако я застрял на том, как сгенерировать обещания и сохранить их до promise_array
. Этот код находится на стороне клиента, и я использую AngularJS 1, но я открыт для любого подхода. Mucho gracias!
Как мне заставить это выполнить в цикле for? Это так же просто, как обертывание функции getGroupFeed в цикле for? –
Еще это не синхронно. – Avinash
@ KangzeHuang, вам не нужно использовать для цикла. Этот подход дает вам то, что вы запрашиваете для prom_array, и оно более читаемо и меньше подвержено ошибкам, чем для цикла. – Avinash