作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此功能是否将结果复制为错误,还是我造成的?输出总是有 1 个或多个重复的记录。在这个例子中,中国银行总是在输出中列出两次。
gun.get('savings_accounts').map(function (name, ID) {
console.log( name.name, ID );
}, true)
我的代码:
localStorage.clear();
var gun = Gun();
////////////////////////////////////////////////////// create record
var acc1 = gun.put({
name: "Bank of America",
accType: "Savings",
last4: "4123",
favorite: true,
status: true,
created: "some date created"
});
var acc2 = gun.put({
name: "Bank of China",
accType: "Savings",
last4: "5123",
favorite: true,
status: true,
created: "some date created"
});
gun.get('savings_accounts').map(function (name, ID) {
console.log( name.name, ID );
}, true)
最佳答案
来自 GunDB 的作者 Mark Nadal
1) gun.get('savings_accounts').map().val(cb)
是你想要的正常/程序/简单的东西。
然而...
2) gun 实际上是函数式/响应式(Reactive) (FRP),或者也称为流/事件导向。数据可能/将被多次调用(如果您不使用 .val
),因为 A)内存回复,B)您浏览器的 localStorage 回复,C)服务器将回复,D)服务器将中继到其他浏览器每个都可能回复数据的对等点。
^ 那是枪的“实时”部分。.val
只触发一次(对于链上的每个项目,所以如果你这样做 map().val(cb)
val
将被多次触发,但列表中的每个项目只会触发一次)。
使用 .val(cb)
如果你正在做程序性的事情。
使用 .on(cb)
(这是 .map(cb)
在内部使用的。大多数 API 方法在内部使用 .on
)如果您想订阅数据的实时更新。
您会慢慢发现实时/FRP/事件/流媒体是编写应用程序的更简洁的方式。
关于gun - 使用gundb时枪图的console.log重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38665394/
我是一名优秀的程序员,十分优秀!