Javascript/jQuery承诺,在树中处理可变数量的承诺

Javascript/jQuery承诺,在树中处理可变数量的承诺,javascript,jquery,asynchronous,Javascript,Jquery,Asynchronous,您好:我有一个术语树,最多可以包含3个级别。我有一个函数“getTerms”,它以jQuery的形式返回树中的项目列表。然后,我有一个类似这样的循环: getTerms().then(function(t0) { for (var i = 0; i < t0.length; i++) { t0[i]["children"] = []; allTerms.push(t0[i]); getTerms(t0[i]).then(function(t1) {

您好:我有一个术语树,最多可以包含3个级别。我有一个函数“getTerms”,它以jQuery的形式返回树中的项目列表。然后,我有一个类似这样的循环:

getTerms().then(function(t0) {

  for (var i = 0; i < t0.length; i++)
  {
     t0[i]["children"] = [];
     allTerms.push(t0[i]);
     getTerms(t0[i]).then(function(t1) {

           for (var j = 0; j < t1.length; j++)
           {
               // process t1 items the same as t0...
           } 
     });

  }
});
getTerms().then(函数(t0){
对于(变量i=0;i
最后,我有一个类似于树的层次结构,t0项位于第一级,t1项位于第二级,t2项位于第三级。此层次结构存储在变量allTerms中

问题是我仍然没有真正的方法来判断遍历何时完成。我知道我可以创建一个承诺数组并添加它们,但问题是我有一个可变数量的术语,每个术语在树的不同级别上旋转异步调用,并且在任何时候,承诺数组都可能在等待包含更多数据的回调时达到零

我期待着你对解决这个问题的建议。谢谢