4

我是最新的 JS,我不能重用来自 alasql 的变量。当我运行我的代码时,我有“unidifined”

var dataSource = alasql('SELECT AGENT_NAME, count(*) FROM XLSX("export.xlsx",{headers:true}) GROUP BY AGENT_NAME')
console.log(dataSource)

但是当我跑步时

var dataSource = alasql('SELECT AGENT_NAME, count(*) FROM XLSX("export.xlsx",{headers:true}) GROUP BY AGENT_NAME',[],
        function (data) { console.log(data)})

一切都很好

4

1 回答 1

1

似乎 alasql 在数据库响应后有一个回调。尝试这个。

var dataResult;
var dataSource = alasql('SELECT AGENT_NAME, count(*) FROM XLSX("export.xlsx",{headers:true}) GROUP BY AGENT_NAME',[],
        function (data) { dataResult = data })

在触发回调之前,dataResult 将是未定义的。在那之后,它将具有价值。

如果要在数据库回调完成后触发任何代码,请将其放在回调本身中。

var printResult = function(result){ console.log(result)};
var dataSource = alasql('SELECT AGENT_NAME, count(*) FROM XLSX("export.xlsx",{headers:true}) GROUP BY AGENT_NAME',[],
        function (data) { printResult(data); })
于 2015-06-28T14:32:06.663 回答