我在某些服务类中具有递归函数,以删除一些json元素,并且一旦删除它们,我就必须调用为更新注册的回调。

我的代码-

    var trimTree = function(){
    removeScripts(tree.children).then(function(){
      angular.forEach(callbacks, function(callback){
        //console.log(callback);
        console.log("Calling callbacks");
        callback();
      });
    });
  }
  function removeScripts(nodes){
    for(i=0;i<nodes.length;i++){
      if(nodes[i].type == 'script'){
        return nodes.splice(i, 1);
      }else{
        return removeScripts(nodes[i]);
      }
    }
  }


但是它给我错误为TypeError: Cannot read property 'then' of undefined

谢谢

最佳答案

您假设removeScripts()返回了Promise,但没有返回。 removeScripts()是同步的,因此通常在其后添加语句。

07-24 17:32