关于tradingview请求不到数据时的处理问题

通过tradingview的getBars获取k线的历史数据,正常情况下是没问题的。但如果在某种k线的第一次加载时,后台数据有缺失导致返回的是空数组,tradingview就不会绘制k线。微信截图_20191213113537.png
就像这样,画面不能拖动或缩放,导致缺失数据的时间段之前的k线也无法查看。后台历史记录的接口是基于传入两个时间点返回期间的k线数据,缺失数据的时间段不确定,可能会比较长。而且不能把首次加载时请求的时间段设得太长,否则加载会很慢

这是获取数据后调用的方法,data为从后台请求到的数据,begin为getBars传过来的参数中的begin
onHistoryCallback(data, {noData: !data.length, nextTime: !data.length ? begin : null})

现在的问题是,怎样能在首次请求数据为空数组的情况下使tradingview能继续加载之前的数据?,不管是让它自动向前加载还是手动拖拽加载都行。尝试过将noData设定为true或false,或修改nextTime的值,tradingview不是没继续请求就是不断发起请求,但请求的参数起始和终止时间都是nextTime的值,而不是一个时间段

各位用过的能指点一下,先谢了

阅读 7k
2 个回答

我解决了,你应该 是报 getBars callback is already called before 这个错误

原因是 你重复利用了 getBars 里面的onDataCallback 这个callback 只能引用一次

技巧一 初始化 new TradingView.widget({timeframe:'N个 他会+30很奇怪',...})
技巧二 getBars 他自己会递归 加载 from to 订阅加载都行 onDataCallback 给回调或者 全局且只能一次

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题