Клуб API Карт

objectManager.objects.overlays.getLength() после обработки setFilter()

xsmilefacex
1 июля 2016, 12:23

Добрый день.

Собственно вопрос "Как узнать количество элементов после применения setFilter()"?

Сделал пример: https://jsfiddle.net/833xrh9t/4/

Вроде должны были посчитать оверлеи, но вот беда, функция то асинхронная на сколько я понимаю (я про setFilter()), поэтому отображается старое количество элементов.


Во всяком случае код:

 

objectManager.setFilter(sFilters);

console.log(objectManager.objects.overlays.getLength() + ' from ' + objectManager.objects.getLength());



у меня показывает старые значения (т.е. setFilter() еще не отработал?).


А setFilter().then(function...) у меня выдаёт ошибку (objectManager.setFilter(...).then is not a function).
Может нужен Promise?

3 комментария
Подписаться на комментарии к посту
Неужели никто не сталкивался? Не хочется ведь setTimeout ставить, ребят!
У коллекции overlays есть события add/remove, нужно подписываться на них.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/objectManager.OverlayCollection-docpage/#events-summary
twirl-team,
Спасибо, буду пробовать!