0

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

ストップコンディション時

4

2 に答える 2

1

ラインで

return callback(err)

コールバック関数を呼び出していますが、コードで定義されていません。callbackSN 関数を呼び出したいと思います。

return callbackSN(err)
于 2014-12-28T16:06:03.123 に答える