node_func
ツリー内の各ノードに対して実行するために、ツリーを介して再帰を実行しようとしています。node_func
は、 の下のツリーの次の値も返します[values]
。
これを使用async.eachSeries
して、ツリーの次のレベルにあるノードのリストを取得します。関数はツリーの最初のブランチで正常に実行されますが、停止条件があるリーフで を呼び出そうとしましたcallback
が、undefined
.
コード:
function clone(a) {
return JSON.parse(JSON.stringify(a));
}
var searchNext = function(params, callbackSN){
var seParams = clone(params);
node_func(seParams,function(searchRes){
//Stop Condition - return
if (searchRes["nextFeature"] != 1){
return callbackSN(); //Stop Condition
}
var values = searchRes["values"]
var paramsArr = []
for (var i = 0; i < values.length; i++) {
var seParams2 = clone(seParams);
seParams2["value"].push(values[i]["value"])
paramsArr.push(seParams2)
};
async.eachSeries(paramsArr, searchNext, function(err){
return callbackSN(err)
});
})
}
//init search
var params = {"value" :[]}
searchNext(params,console.log)
実行すると、最初のブランチで実行され、「停止条件」に達すると、次のエラーが発生します。
TypeError: undefined is not a function
次の行を指します。
return callbackSN(); //Stop Condition
ストップコンディション時