Клуб API Карт

Асинхронные запросы

Пост в архиве.

Здравствуйте!Есть вот такой кусок кода:

            routes.forEach(function(route , i){

                routeOptions = {

                    'strokeColor': '#000000',

                    'strokeOpacity': 0.7,

                    'strokeWidth': 8,

                    'visible': true,

                };

                routeProperties = {

                    'route_distance': route['route_distance'],

                };

                ymaps.route(pointsCoords).then(function(route){

                    route.options.set(routeOptions);

                    route.properties.set(routeProperties);

                    routesCollection.add(route);

                },function(error){

                    alert('Невозможно проложить маршрут!');

                });

            }

после того как сформируется коллекция мне нужно отсортировать все маршруты по возрастанию дистанции.Проблема в том, как мне узнать когда сформировался этот объект.Я так понимаю здесь нужны callback functions.Подскажите пожалуйста где их использовать?

2 комментария

аналогичную задачу решает класс множественного геокодирования

вам нужно сохранить в переменную длину массива входных данных

var size = routes.length

И уменьшать это число на единицу (--size) в каждом удачном обработчике ответа маршрутизатора.

Когда size будет === 0 значит все запросы прошли и можно вызывать финальный каллбэк

 

Слава Русов
28 января 2016, 03:26

Cпасибо, я примерно так и хотел сделать, но думал есть более изящьный способ.Благодарю за помощь