Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 新手尝试从fastcsv返回2d数组,但返回未定义_Javascript_Arrays_Node.js_Csv - Fatal编程技术网

Javascript 新手尝试从fastcsv返回2d数组,但返回未定义

Javascript 新手尝试从fastcsv返回2d数组,但返回未定义,javascript,arrays,node.js,csv,Javascript,Arrays,Node.js,Csv,我这里有这个密码 function marketInfo() { var market_data = []; csv .fromPath("market_info.csv") .on("data", function(data) { if (data.length != 0) { market_data.push(data); } }) .on("end", function() {

我这里有这个密码

function marketInfo() {
    var market_data = [];
    csv
    .fromPath("market_info.csv")
    .on("data", function(data) {
        if (data.length != 0) {
            market_data.push(data);
        }
    })
    .on("end", function() {
        for (var i=0; i < market_data.length; i++) {
            result.push(market_data[i]);
        }
        // console.log(market_data);
        return market_data;
    })
}
函数marketInfo(){
var市场_数据=[];
csv
.fromPath(“market_info.csv”)
.on(“数据”),功能(数据){
如果(data.length!=0){
市场数据推送(数据);
}
})
.on(“结束”,函数(){
对于(var i=0;i

它打印数据,我知道有人在另一篇文章中提到了回调,但我不太明白。。。数据有0个标题,因此它与['market_cap','123456789']]等保持一致。返回数组时,它是未定义的。我试图搜索,但我不知道这里的问题是什么

您的
返回市场\u数据
功能只是呼啸而过。它没有任何意义。
marketInfo
函数本身使用带有回调的异步代码。除非向该函数提供回调,否则无法捕获该返回值

function marketInfo(cb) {
    var market_data = [];
    csv
    .fromPath("market_info.csv")
    .on("data", function(data) {
        if (data.length != 0) {
            market_data.push(data);
        }
    })
    .on("end", function() {
        for (var i=0; i < market_data.length; i++) {
            result.push(market_data[i]);
        }
        // console.log(market_data);
        cb(null, market_data);
    })
}

由于编写回调驱动的代码可能会很麻烦,您可能会尝试转向基于承诺或
async
/
wait
的解决方案。

这是Node.js吗?是的,我将nodejs与express/ejs结合使用。作为java/python的高级用户,您建议学习哪些行业标准?承诺还是cb就足够了?JavaScript社区在这个问题上有各种各样的观点,这主要是因为存在相互冲突的用例。如果您正在编写需要支持IE10+的浏览器端代码,那么您就不能使用任何使生活更轻松的新ES6功能。如果您正在当前构建中编写Node.js代码,那么您可以利用一切。通常对什么是可能的有一个很好的概述,不一定是最好的。我个人认为承诺和
async
/
wait
会让生活变得更容易,但这只是我的观点。我非常感谢项目所做的工作,因为
async
/
正在无缝地等待
螺栓。很抱歉再次打扰您,但我知道没有返回,但是我如何通过index.js将动态内容传递到index.ejs文件?如果没有返回功能,我似乎无法做到这一点me@ImranChowdhry最好把这个问题作为一个新问题来问,而不是把它挂在这个问题上。
marketInfo(function(err, market_data) {
  // Do stuff with data
});