首页 > 解决方案 > 无法读取未定义的属性 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天,请帮助我。

标签: javascripttypescripttradingview-api

解决方案


使用 Promise 是解决问题的最佳方式。

如果 load 返回一个使用 subscribe 尝试的承诺,它里面的代码只会在你的请求完成后执行。

item.load(data).subscribe((data) => {
    //rest of your code here
    item.onChartReady(chartReadyHandler)
})

推荐阅读