我如何使npm pack“ highcharts-export-server”等待其完成处理

问题描述 投票:0回答:1

我是javascript和node.js的新手,我正在尝试“ highcharts-export-server”,在其中尝试将图表作为base64字符串获取。这是我的highchartstest.js文件:

const chartExporter = require("highcharts-export-server");
var chartBase64 = null;
 function ProcessChart() {
    chartExporter.initPool(); // Initialize the exporter
    const chartDetails = {
        type: 'png',
        options: {
            title: {
                text: 'My Chart'
            },
            xAxis: {
                categories: ["Jan", "Feb", "Mar", "Apr", "Mar", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
            },
            series: [{
                    type: 'line',
                    data: [1, 3, 2, 4]
                },
                {
                    type: 'line',
                    data: [5, 3, 4, 2]
                }
            ]
        }
    };
    chartExporter.export(chartDetails, (err, res) => {
        chartBase64 = new Buffer.from(res.data, 'base64');  
        //console.log(chartBase64);
        chartExporter.killPool();
        return chartBase64;
    });
}
module.exports.ProcessChart = ProcessChart;

我还有一个名为test.js的文件,带有以下代码:

var charts = require('./highchartsTest');
var chartBase = charts.ProcessChart();
console.log(chartBase);

如果我运行node test.js,则在控制台中得到的结果是undefined。如果我在console.log(chartBase64);中取消注释highchartstest.js,则可以看到结果。有人可以帮我找出问题,当我打电话给var chartBase = charts.ProcessChart();]时如何获取该信息以等待处理完成

我是javascript和node.js的新手,我正在尝试“ highcharts-export-server”,在其中尝试将图表作为base64字符串获取。这是我的highchartstest.js文件:const chartExporter ...

javascript node.js highcharts wait
1个回答
1
投票

您收到的未定义不是来自导出函数的回调。接收正确的base64字符串的最简单方法是在ProcessChart函数中添加一个参数,该参数是在killPool调用之后触发的回调。代码看起来像这样:

© www.soinside.com 2019 - 2024. All rights reserved.