Клуб API Карт

ymaps.route

Eterity
18 января 2013, 00:55

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/route.xml

 

Пожалуйста, вынесите route возвращаемый в callback отдельным объектом или сделайте возможность передачи отдельным неинтерфейсным свойством options или доп.параметром route user-defined данных.
Проблема становится актуальна когда возникает потребность синхронизации callback'ов маршрутизатора. Почему-бы не встроить observer выбрасывающий события роутера отдельно прямо в api.

Из применения, стоит например задача - при завершении построения всех маршрутов бросать user-defined событие. Сейчас для этого я вынужден либо использовать рекурсивную синхронизацию(завершили один маршрут - перешли к другому), либо setInterval, либо писать свой observer из верхнего scope'а. В рамках существующих интерфейсов Вам это было бы добавить в API элементарно, или даже сделать фабрику маршрутов как отдельный интерфейс в который мы передаем набор маршрутов и ловим некие события общие для "группы" маршрутов.

 

Так или иначе, задокументируйте возможность синхронизации callback'ов от router'а. На 100% уверен что не только у меня такая проблема. Было бы очень актуально вынести ее реализацию в API и в примеры.

1 комментарий
Подписаться на комментарии к посту

Проблемы никакой нет. Пишется свой класс, который ждет когда будут получены все маршруты и возвращает промис как в АПИ, или кидает событие, если вам так привычнее. В АПИ все для этого есть.

Вот пример, такой же реализации, но только для геокодера.