This function does not return a promise.
It uses the csvtojson module. https://www.npmjs.com/package/csvtojson
var CSVConverter=require("csvtojson").Converter;
function get_json(cvs_file_location)
{
    var data=fs.readFileSync(cvs_file_location).toString();
    var csvConverter=new CSVConverter();
    csvConverter.fromString(data,function(err,jsonObj){
        if (err){
            console.log("error msg: " + err);
            return null;
        }
        var json_csv = clone_obj(jsonObj);
        console.log(json_csv);
        return json_csv;
    });
}
I would like to convert it into one that returns a promise. This is what I wrote;
var Promise = require('bluebird');
var Converter = Promise.promisifyAll(require("csvtojson").Converter);
function get_json(cvs_file_location)
{
    var data=fs.readFileSync(cvs_file_location).toString();
    return new Converter().fromStringAsync(data)
        .then(function(csvString){
            var json_csv = clone_obj(csvString);
            console.log(json_csv);
            return json_csv;
        })
        .catch(function(cb) {
            console.log("error msg: " + cb);
            return null;
        });
}
Unfortunately, it does not work. The error message looks like this;
return new Converter().fromStringAsync(data) ^ TypeError: (intermediate value).fromStringAsync is not a function
What is wrong with the code? Or is there another way to write the code to return a promise?