Возвращаемое значение не работает вне функции?

Когда мы console.log(restaurantdata) внутри функции.on('end') возвращаем журнал, но вне журнала функции не можем дать возвращаемое значение undefined.

    var restaurantdata=[];
    fs.createReadStream('restaurantsa9126b3.csv')  
    .pipe(csv())
    .on('data', (data) => restaurantdata.push(data))  
    .on('end', () => {
        return restaurantdata; 

      }) 
      console.log(restaurantdata);
      yield this.render('home',{
        restaurantdata:restaurantdata,
    });

1 ответ

Решение

Вы можете попробовать это...

function convert(data) {
    data = data.split('\n');
    var heading = data[0].split(',');
    var arr = [];
    var line,words,err;
    for(var i=1;i<data.length-1 ;++i){
        var obj = {};
        line=data[i];
        words = line.split(',');
        var k =0;
        for(var j=0;j<words.length;++j){
            if (words[j].indexOf('\"')==-1){
                obj[heading[k]] = words[j];
                k++;
            } else{
                err = [];
                err.push(words[j].substring(1,words[j].length));
                j++;
                while (words[j].indexOf('\"')==-1) {
                    err.push(words[j]); j++;
                }
                err.push(words[j].substring(0,words[j].length-1));
                obj[heading[k]] = err;
                k++;
            }
        }
        arr.push(obj);
    }
   return arr;
}

Надеюсь, это может помочь вам...

Другие вопросы по тегам