困在节点js的回拨地狱

我试图修改这个节点库来添加一个额外的存在方法

这是链接到图书馆 – https://github.com/mikolalysenko/interval-tree-1d/blob/master/interval-tree.js

这是我创造的

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); } } 

问题是callback是风相当紧我想实现的是,如果任何间隔匹配查询点,它应该返回true并立即退出。 但由于疯狂的recursioncallback,我卡住了,它永远不会到达顶部。

请帮忙