无法读取未定义的 属性 loadChart

Cannot read property loadChart of undefined

我一直在尝试实施 TradingView,但在尝试加载数据时总是出现此错误:

vendor.js:782 Uncaught TypeError: Cannot read property 'loadChart' of undefined

此错误发生在“item.load(数据)”行。

我设置了一个 setTimeOut 来延迟加载,它对我来说是这样解决的:

setTimeout(function (){
    item.load(data);
}, 500);
item.onChartReady(chartReadyHandler);

但是对于某些用户来说,它没有,所以我将setTimeOut时间更改为1000ms,它解决了一些而不是其他人,所以我总是不得不不断增加加载时间,但对我来说,它会延迟加载,说“无效符号”,1 秒后它正确加载,但我不能将超时增加到 10000 毫秒并给用户带来问题。

那么,我怎样才能检查是否在正确的时间加载? api 之类的承诺?

我试过将它放在 chartReadyHandler 中,但没有用,我注意到它只在加载数据后进入“onChartReady”。

我已经坚持了 2 天了,请帮帮我。

使用 promises 是解决问题的最佳方法。

如果加载 returns promise 尝试使用订阅,其中的代码只会在您的请求完成后执行。

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