Map
Loro 的 Map 采用 LWW(Last-Write-Wins)语义。当并发修改发生冲突时,会比较 Lamport 逻辑时间戳以决定最终值。
示例:
const = new ();
.("0");
const = new ();
.("1");
const = .("map");
const = .("map");
.("a", 1);
const = .("a", new ());
.(0, "Hi");
.(.()); // { map: { a: 1 } }
.(.()); // { map: { a: "Hi" } }
.(.({ : "snapshot" }));
.(.({ : "snapshot" }));
// docB 的 peerId 更大,对应的逻辑时间更晚,因此获胜
.(.()); // { map: { a: "Hi" } }
.(.()); // { map: { a: "Hi" } }提示:当调用
map.set(key, value)时,如果map.get(key)已经等于该值,将不会记录新操作。