Javascript 在节点js中陷入回拨地狱

Javascript 在节点js中陷入回拨地狱,javascript,node.js,callback,Javascript,Node.js,Callback,我正在尝试修改此节点库以添加额外的exists方法 这是到图书馆的链接- 这就是我所创造的 proto.queryPointExists = function(x, cb) { if(x < this.mid) { if(this.left) { var r = this.left.queryPointExists(x, cb) if(r) { return r } } return reportLeftRange

我正在尝试修改此节点库以添加额外的exists方法

这是到图书馆的链接-

这就是我所创造的

proto.queryPointExists = function(x, cb) {
    if(x < this.mid) {
      if(this.left) {
        var r = this.left.queryPointExists(x, cb)
        if(r) { return r }
      }
      return reportLeftRangeExists(this.leftPoints, x, cb)
    } else if(x > this.mid) {
      if(this.right) {
        var r = this.right.queryPointExists(x, cb)
        if(r) { return r }
      }
      //console.log(reportRightRangeExists(this.rightPoints, x, cb));
      return reportRightRangeExists(this.rightPoints, x, cb)
    } else {
      return reportRangeExists(this.leftPoints, cb)
    }
  }

  function reportLeftRangeExists(arr, hi, cb) {
    for(var i=0; i<arr.length && arr[i][0] <= hi; ++i) {
      var r = cb(arr[i])
      if(r) { return r }
    }
  }

  function reportRightRangeExists(arr, lo, cb) {  
    for(var i=arr.length-1; i>=0 ; --i) {
      if(arr[i][1] >= lo){
        var r = cb(arr[i])
        if(r) { return r }
      } else {
        return false;
      } 
    }
  }

  function reportRangeExists(arr, cb) {
    for(var i=0; i<arr.length; ++i) {
      var r = cb(arr[i])
      if(r) { return r }
    }
  }

tproto.queryPointExists = function(p, cb) {
    console.log("Here");
    if(this.root) {
      //console.log(this.root.queryPointExists(p, cb)+"ss");  
      return this.root.queryPointExists(p, cb);
    }
  }
proto.queryPointExists=函数(x,cb){
if(xthis.mid){
如果(这个。对){
var r=this.right.queryPointExists(x,cb)
if(r){返回r}
}
//log(reportRightRangeExists(this.rightPoints,x,cb));
返回报告RightRangeExists(this.rightPoints,x,cb)
}否则{
return reportRangeExists(this.leftPoints,cb)
}
}
函数reportLeftRangeExists(arr、hi、cb){
对于(变量i=0;i=lo){
var r=cb(arr[i])
if(r){返回r}
}否则{
返回false;
} 
}
}
函数reportRangeExists(arr、cb){

对于(var i=0;i您需要回调什么?您的所有函数似乎都是同步的。@Bergi但是如果您检查代码,如果节点或内部不存在,则它是一个访问者模式,并且返回值,我只想检查节点是否不存在,返回一个false我正在尝试向这个库添加一个额外的方法,该方法检查节点是否存在于中tervals或not如果存在返回true或false您需要回调什么?您的所有函数看起来都是同步的。@Bergi但是如果您检查代码,它是一个访问者模式如果节点或内部不存在,它会返回值,我只想检查节点是否不存在返回false我正在尝试向这个库添加一个额外的方法检查节点是否存在于间隔之间,如果存在,则返回true,否则返回false