如何通过单个请求获取多个节点?

时间:2017-10-25 14:49:09

标签: javascript gun

枪0.8.8

是否可以通过单个get请求获取多个节点?

例如,像这样

gun.mget([ "nodeNameA", "nodeNameB" ], function(value) 
  console.log(value);
  /*
    {
      "nodeNameA": { my: "Special", variable: 123 },
      "nodeNameB": { the: "Glory", answer: 42 }
    }
  */
  // ... do something ...
});

在许多数据库中,您可以通过单个查询获取多个对象。由于网络延迟,有时获得单个响应而不是数百个小响应更快。

1 个答案:

答案 0 :(得分:1)

@trex,

在表格上使用扩展API .open(cb)可能就是您想要的。

以下是一个例子:

var gun = Gun();

gun.get('nodeNameA').put({ my: "Special", variable: 123 });
gun.get('table').set(gun.get('nodeNameA'));


gun.get('nodeNameB').put({ the: "Glory", answer: 42 });
gun.get('table').set(gun.get('nodeNameB'));


gun.get('table').open(function(data, key){
  console.log("update:", data);
  /*
    {
      "nodeNameA": { my: "Special", variable: 123 },
      "nodeNameB": { the: "Glory", answer: 42 }
    }
  */
});

在这里自己玩:http://jsbin.com/ditohivovo/edit?js,console

文档可在此处找到:

https://github.com/amark/gun/wiki/API#open

  

注意:您必须在浏览器中添加require('lib/open.js')<script src="gun/lib/open.js"></script>