首页 > 解决方案 > 如何解决 RangeError:Date.toISOString 的时间值无效

问题描述

我正在尝试使用tradingview 图表库和使用bitquery api 来呈现tradingview 图表以进行数据馈送。

图表正在显示,但图表上没有数据。

我打开了检查元素并注意到了这一点:

在此处输入图像描述

更具体地说,关于RangeError: Invalid time value 我假设的部分是导致图表不加载任何烛台数据的原因?

这是 datafeed.js 中的代码部分:

// This method is used by the charting library to get historical data for the symbol. 
getBars: async(symbolInfo, resolution, from, to, onHistoryCallback, onErrorCallback, first) =>{
    try{
        if (resolution==='1D') {
            resolution = 1440;
        }
        const response2 = await axios.post(Bitquery.endpoint, {
            query: Bitquery.GET_COIN_BARS,
            variables: {
                "from": new Date(from).toISOString(),
                "to": new Date(to).toISOString(),
                "interval": Number(resolution),
                "tokenAddress": symbolInfo.ticker
            },
            
            mode: 'cors',
            headers: {
                "Content-Type": "application/json",
                "X-API-KEY": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
            }
            
        })
        const bars = response2.data.data.ethereum.dexTrades.map(el => ({
            time: new Date(el.timeInterval.minute).getTime(), // date string in api response
            low: el.low,
            high: el.high,
            open: Number(el.open),
            close: Number(el.close),
            volume: el.volume
        }))

        if (bars.length){
            onHistoryCallback(bars, {noData: false}); 
        }else{
            onHistoryCallback(bars, {noData: true}); 
        }

    } catch(err){
        console.log({err})
        // onErrorCallback(err)
    }

我对 tradingview 图表库和 JS 相当陌生,所以我需要建议来解决这个问题。

标签: javascriptreactjsgraphqlgraphql-js

解决方案


推荐阅读