2
我已经使用node.js和riak-js编写了以下代码。我有一个递归函数walk
,它应该是JSON文档的列表,而是返回一个空列表...为什么?怎么修?javascript回调函数和匿名函数的作用域是什么?
require('riak-js');
var walk = function(bucket, key, list){
if(list == undefined){
var list = new Array();
}
db.get(bucket, key)(function(doc, meta){
list.push(doc);
if(meta.links.length > 0 && meta.links[0].tag == 'child'){
walk(bucket, meta.links[0].key, list);
}
});
return list;
}
familytree = walk('smith', 'walter', []);
在此先感谢!
根据指南,我认为你的语法是关闭的。它应该是'db.get(bucket,key,function(doc,meta)'... – 2010-10-01 04:43:44
@Matthew Flaschen是对的。你的'db.get'的语法是错误的。 – 2010-10-01 06:09:47
其实我的语法正确的版本riak-js我正在使用(v0.2.2) - 如果你看看指南,你会看到它说“注意:本指南仅适用于riak-js 0.3.0” – roder 2010-10-01 12:51:07