从枪获取流数据

时间:2015-09-30 20:55:39

标签: database gun

on()应该从路径或密钥1流式传输数据。但是当我在路径上put数据时,我没有看到更新的流。

var myData = Gun('https://gunjs.herokuapp.com/gun')
             .get('example/demo/set');
myData.on();
myData.put({hello:'world'});

2 个答案:

答案 0 :(得分:2)

.on()异步函数,因此您需要将代码更新为:

var myData = Gun('https://gunjs.herokuapp.com/gun')
             .get('example/demo/set');
myData.on(function(data){
    console.log("update:", data);
});
myData.put({hello:'world'});

希望有所帮助!

如果您不熟悉编程,那么#34;匿名函数" (通常称为回调)在上面的代码中可能会有些混乱。上面的代码也可以重写为此,具有完全相同的行为:

var myData = Gun('https://gunjs.herokuapp.com/gun')
             .get('example/demo/set');

var cb = function(data){
    console.log("update:", data);
};

myData.on(cb);

myData.put({hello:'world'});

出于调试目的,还有一个.val()便利功能,可以自动为您记录数据:

var myData = Gun('https://gunjs.herokuapp.com/gun')
             .get('example/demo/set');
myData.on().val()
myData.put({hello:'world'});

但是它用于一次性目的,而不是用于流式传输。就像一个注释,你可以传递.val(function(data){})一个回调,它将覆盖默认的便利记录器。

答案 1 :(得分:1)

更新:由于使用val()的Gun v0.391也需要回调。不再提供自动记录。