Рекурсивная функция с Promise в JavaScript
Я нуждаюсь checkedNodes
переменная для ожидания до завершения рекурсии, как я могу этого достичь? Как я могу сделать getcheckedNodeIds
(рекурсивная функция) вернуть обещание? или, возможно, массив обещаний. nodes[i].load()
Кендо UI Узлы, где load()
получает дочерние узлы с удаленного сервера
var getcheckedNodeIds = function (nodes, checkedNodes) {
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].checked) {
checkedNodes.push(nodes[i]);
if (nodes[i].hasChildren) {
var nodeIndex = i;
return nodes[i].load().done(function () {
getcheckedNodeIds(nodes[nodeIndex].children.view(), checkedNodes);
});
}
}
if (nodes[i].hasChildren) {
getcheckedNodeIds(nodes[i].children.view(), checkedNodes);
}
}
};
var onCheck = function () {
var checkedNodes = [];
getcheckedNodeIds(self.treeViewWidget().dataSource.view(), checkedNodes).done(function () {
//some action with checkedNodes
});
};