Как перезапустить подписку на узле GunDB - PullRequest
0 голосов
/ 18 мая 2019

У меня тестовый код:

const items = gun.get("items")
items.open(items => console.log("items:", items))

const item = items.set({ name: "Alice" })

console.log("start subscription")
item.on(item => console.log("item: ", item))

setTimeout(() => {
  console.log("stop subscription")
  item.off()

  setTimeout(() => {
    console.log("restart subscription?")
    item.on(item => console.log("item:", item))

    setTimeout(() => {
      item.get("name").put("Bob")
    }, 1000)
  }, 1000)
}, 1000)

Через 3 секунды выдается:

start subscription
item: {_: {#: "TaoY0g8U7C1zAp5A6rHMy", >: {name: 1558179523214}}, name: "Alice"}
items: {TaoY0g8U7C1zAp5A6rHMy: {name: "Alice"}}
stop subscription
restart subscription?

Похоже, что API off наносит ущерб любым дальнейшим подпискам, связанным с узлом ... включая полную глубину подписки open на верхних узлах.

Мое веб-приложение должно повторно подписаться на существующие узлы. Есть ли обходной путь? Я использую gun@0.2019.515.

...