【问题标题】:How to unsubscribe Dexie Hook如何取消订阅 Dexie Hook
【发布时间】:2021-02-01 09:19:57
【问题描述】:

使用以下工作代码:

db.table(this.mytableName).hook('creating', function (primKey, obj, transaction) {
   currentObj.countUnsync();      // Call function 1
   currentObj.uploadUnsyncToDB(); // Call function 2
});

我需要停止监听钩子“创建”。

根据文档,这应该可以,但它不适合我,因为我不知道要使用什么 'yourListenerFunction'

db.table(this.mytableName).hook('creating').unsubscribe(yourListenerFunction)

谁能帮忙举个例子。

【问题讨论】:

    标签: indexeddb dexie


    【解决方案1】:

    文档将 yourListenerFunction 称为作为第二个参数传递给 hook('creating') 的函数。您需要为该函数命名或在某处存储对该函数的引用才能取消订阅。

    我刚刚updated the docs 提出了这个问题,以使文档更清晰:

    yourListenerFunction 指的是您传递给 Table.hook('creating') 的同一个函数实例。如果您需要取消订阅,则不能像我们在主示例中那样内联该函数。而是在闭包或类属性中保留对它的引用。

    function listenerFunction (primKey, obj, transaction) {
      // Do your stuff...
    }
    
    // Subscribe:
    db.[tableName].hook('creating', listenerFunction);
    
    // Unsubscribe:
    db.[tableName].hook('creating').unsubscribe(listenerFunction);
    

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 2012-03-14
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      相关资源
      最近更新 更多