当在2个map()调用之间切换时,ev.off()似乎会杀死侦听器

时间:2017-06-06 09:09:57

标签: gun

我有一个过滤器列表,可以在“所有”和“收藏夹”之间切换。 这很好用。但是,当我在两种方法中激活outcommented ev.off()时,从一个过滤器到另一个过滤器的切换将不再产生结果。 从那时起,两个列表都将保持空白。 (顺便说一下:因为ev.off()仍然是实验性的,我现在好了,不使用它。也许这个信息可能有助于将来发布)

1.subscribe()方法调用相关的列表方法

export const subscribe          = (payload, cb) => {
const filter = payload.filter
const user   = payload.user
switch (filter) {
  case 'all' :
    subscribeAllSkills(cb)
    break
  case 'favorites' :
    subscribeFavoriteSkills(user, cb)
    break
    ...
  }
}

2.subscribeAllSkills()

const subscribeAllSkills        = (cb) => {
  gun.get('skill')
     .map()
     .on(
       (skill, pk, ctx, ev) => {
           //ev.off()
           cb(skill, pk)
       }
     )
}

3

const subscribeFavoriteSkills   = (user, cb) => {
  gun.get('user')
   .get(user.pk)
   .get('favorite_skill')
   .map()
   .on(
     (skill, pk, ctx, ev) => {
       //ev.off()
       cb(skill, pk)
     }
   )
}

0 个答案:

没有答案