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


  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对象。但是我想添加一个回调,一旦那个函数结束它应该调用那个方法。

如何做到这一点?

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

因为这个原因,你不需要回调。只要在初始调用transverse之后继续执行递归遍历之后的代码即可。

示例,演示forEach的同步特性:

var input = [0, 1, 2, 3, 4];
input.forEach(function(item) {
  console.log(item);
});
console.log('done');

最新更新