1

JS SDK avl_resourse events

Topic: 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, поэтому когда будут применены все сообщения/изменения полей — вызовется ваш обработчик и данные ресурса уже будут изменены.