У меня есть рекурсивная функция в некотором классе службы, чтобы удалить некоторые элементы 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 не возвращает обещание, поэтому вы не можете использовать. Then. вам может потребоваться использовать $ q для создания обещания https://docs.angularjs.org/api/ng/service/$q –
@NitsanBaleli, Promise не требуется в операциях 'sync' ... – Rayon