Как отписать gundb на функцию события?

Как мне остановить события, вызванные gun('something').on() для gundb обработчик (отписаться), чтобы он прекратил обновлять список или вносить изменения в список.

2 ответа

В 0.5 и выше вы просто звоните .off(),

Тем не менее, вы не можете в предыдущих версиях. Хотя есть обходной путь, вот как это сделать:

var options = {};

gun.get('something').on(callback, options);

options.on.off()

По сути, источник событий привязывается к объекту параметров как on недвижимость, которую можно назвать .off() потом. Надеюсь, это поможет!

При обратном вызове на.onпозвоните, вы получите несколько аргументов.
(value, key, message, onEvent) => void
Последний из этих аргументов содержит собственный.offфункция, которая специально удаляет прослушиватель, которому было передано событие onEvent.

Тогда относительно простым решением будет:

      let off = ()=>{};
chain.on((value, key, message, evt)=>{
  callback(value, key, message, evt);
  off = ()=> evt.off();
});
Другие вопросы по тегам