javascript递归函数回调如何识别所有函数调用何时结束

时间:2016-08-12 20:07:14

标签: javascript jquery recursion data-structures callback

  function transverse(element, result) {
        if (angular.isArray(element)){
            element.forEach(function (item) {
                { transverse(item, result); }
            });
        }

        else if ( angular.isObject(element)) {
            var transform;

            if (element.hasOwnProperty("dataMetrics")) {
                console.log(element);

            }

            if (element.hasOwnProperty("childNodes")) {
                transverse(element.childNodes, result);
            }
        }
    }

所以我有一个用javascript编写的函数遍历树结构的json对象。但我想添加一个回调,一旦该函数结束,它应该调用该方法。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您发布的代码中没有任何内容异步执行,包括forEach调用。

因此,您不需要回电。在初始调用transverse之后,只需继续执行递归遍历后应遵循的代码。

示例,演示forEach

的同步特性



var input = [0, 1, 2, 3, 4];

input.forEach(function(item) {
  console.log(item);
});

console.log('done');