0

鉴于以下情况,如何确定机器列表是否为空以添加机器?

let gun = new Gun();
let machines = gun.get('machines');

如何检查机器列表是否为空?

4

1 回答 1

0

这来自马克纳达尔:

// machineId and location defined elsewhere

machines.val(table => {
  if (Gun.obj.empty(table, '_') {
  // table is empty so we can add something to it
  let machine = gun.get('machine/' + machineId);
  machine.put({machineId, location}};
  machines.set(machine);
  } else {
  // table is not empty
})

  • table 是一个数据节点,其中包含所有行指针(不是实际的子对象)
  • 所以如果表上有 0 个项目,那么它是空的!或者如果表为空或未定义
  • 但是,gun 在每个节点上都有它的 {_: {...}} 元数据,所以你需要忽略它。
  • Gun.obj.empty({}) 测试一个对象是否为空(你可以使用 lodash 或其他东西),第二个参数告诉它忽略一个键,就像在这个例子中的'_'。所以它仍然会说是的,如果它有 0 个属性而不是元数据属性,它是空的。
于 2018-01-15T21:20:48.493 回答