javascript - 无法读取未定义的属性 loadChart
问题描述
我一直在尝试实现 TradingView,但是当我尝试加载数据时总是出现此错误:
vendor.js:782 Uncaught TypeError: Cannot read property 'loadChart' of undefined
此错误发生在“item.load(data)”行。
我已经设置了一个 setTimeOut 来延迟加载,它为我解决了这样的问题:
setTimeout(function (){
item.load(data);
}, 500);
item.onChartReady(chartReadyHandler);
但是对于某些用户,它没有,所以我将 setTimeOut 时间更改为 1000 毫秒,它解决了一些问题,而不是解决了其他问题,所以我总是必须不断增加加载时间,但对我来说,它会延迟加载,说“ Invalid Symbol" 并在 1 秒后正确加载,但我不能只是将超时时间增加到 10000 毫秒并给用户带来问题。
那么,我怎样才能检查在正确的时间加载?api的承诺还是什么?
我试图将它放在chartReadyHandler 中,但没有奏效,我注意到它仅在加载数据后进入“onChartReady”。
我已经坚持了2天,请帮助我。
解决方案
使用 Promise 是解决问题的最佳方式。
如果 load 返回一个使用 subscribe 尝试的承诺,它里面的代码只会在你的请求完成后执行。
item.load(data).subscribe((data) => {
//rest of your code here
item.onChartReady(chartReadyHandler)
})
推荐阅读
- python - 我应该如何使用其 `.components` 编写代码 scikit-learn PCA `.transform()` 方法?
- python - python36.dll - 程序停止工作,一个问题导致程序停止正常工作
- junit5 - 在 junit 5 中运行单个测试参数
- javascript - 文本仍然包裹在它的父 div 中 - CSS、React
- angular-router - 角度路由器:路由未通过以下路径规则测试
- angular - Angular 6:逗号分隔的十进制管道不起作用
- docker - Docker 构建在运行时挂起
- powershell - Powershell Script to parse selected information from txt file and output to csv
- xmpp - MUC 消息的 MongooseIM 推送通知(不是 MUC 灯)
- vba - VBA代码来计算行数(在过滤数据中)&对过滤源文件中的相关列求和