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) 已经等于该值,将不会记录新操作。