一种逻辑计数器表示,用于执行需要作为顺序一致的事件而不是数字的单独重新分配进行同步的数字更新。

例如,离线客户端1和客户端2都将Counter.value视为0 ,因此都可以调用Counter.increment(1) 。在线后,该值将收敛为2

支持计数器类型,因为:

  • Mixed values
  • 主键
  • 内部集合
  • filtered()中占位符的查询参数(例如$0
    • 如果在筛选时需要使用Counter的值,请使用Counter.value

声明一个计数器

属性模式声明为:

  • "counter"
  • { type: "int", presentation: "counter" }

创建计数器

Realm.Object上创建计数器时使用number

realm.write(() => {
realm.create(MyObject, { _id: "123", counter: 0 });
});

更新计数

使用实例方法更新底层计数。

可空性

上述属性模式可扩展为支持可空计数器。 Counter本身从不存储null值,但Realm.Object上的计数器属性(例如myRealmObject.myCounter )可以是null

要从之前的null值创建计数器,或将可空计数器重置为null ,请使用UpdateMode.ModifiedUpdateMode.All

realm.write(() => {
realm.create(MyObject, { _id: "123", counter: 0 }, UpdateMode.Modified);
});

构造函数

访问器

方法

构造函数

访问器

  • get value ( ) : number
  • 当前计数。

    返回数字

方法

  • 递减计数。

    参数

    • Optional by : number

      要递减的值。 (默认值: 1

    返回void

  • 递增计数。

    参数

    • Optional by : number

      要递增的值。 (默认值: 1

    返回void

  • 重置计数。

    参数

    • value : number

      要将计数重置为的值。

    返回void

    警告

    递增递减不同,设置计数的行为类似于对基础值进行定期单独更新。

使用TypeDoc生成