1

JS SDK avl_resourse events

Тема: JS SDK avl_resourse events

Подскажите пожалуйста по поводу событий в JS SDK.
При использовании события messageRegistered, данные в ресурсе ещё не поменялись.
Есть ли событие которое вызывается после обновления ресурса?

2

JS SDK avl_resourse events

Re: JS SDK avl_resourse events

В данный момент в SDK нет события «какие-то поля item'а были изменены».

События приходят в /avl_evts массивом, среди которого могут быть изменения полей/регистрация сообщения/удаление сущности.

Регистрация сообщений никак не связана с изменениями полей и, в теории, сообщение, которое является причиной изменения некоторого поля, может прийти в avl_evts раньше (даже в другом запросе), чем придёт событие о том, что какое-то поле было изменено.

Поэтому лучше подписываться на все интересующие события change* и применять throttle/debounce, чтобы подождать, пока не обработаются все события изменения полей.

Если же всё-таки хочется именно после messageRegistered, то можно в обработчике события сделать:

session.addListenerOnce('serverUpdated', function() {
    // ...
})

Событие serverUpdated возникает у объекта сессии в конце обработки avl_evts, поэтому когда будут применены все сообщения/изменения полей — вызовется ваш обработчик и данные ресурса уже будут изменены.

3

JS SDK avl_resourse events

Re: JS SDK avl_resourse events

можете подсказать как удалить авто через js api wialon известен Id машины

4

JS SDK avl_resourse events

Re: JS SDK avl_resourse events

vinokurov.vick пишет:

можете подсказать как удалить авто через js api wialon известен Id машины

item/delete_item

5

JS SDK avl_resourse events

Re: JS SDK avl_resourse events

rual пишет:
vinokurov.vick пишет:

можете подсказать как удалить авто через js api wialon известен Id машины

item/delete_item


ну это как я понял через Remote API, а вот через Js там тип woalon.core.Session.getInstance(). а вот как правильно дальше ни как не пойму и не найду

6

JS SDK avl_resourse events

Re: JS SDK avl_resourse events

vinokurov.vick пишет:

ну это как я понял через Remote API, а вот через Js там тип woalon.core.Session.getInstance(). а вот как правильно дальше ни как не пойму и не найду

Дальше deleteItem(item). Если id взялся «из воздуха», а не из объектов SDK, то можно фиктивный объект подать:

let session = wialon.core.Sesssion.getInstance();

session.deleteItem({ getId: function() { return 42; } });