javascript - Node.js 无法履行 promise (Promise { <pending> })

标签 javascript node.js es6-promise

我是异步编码的新手

我正在使用 csvtojson 库,我正在尝试转换 csv 文件并将结果传递到另一个模块。

convert() 函数如下所示:

convert: function (csvFilePath) {
  return new Promise((resolve, reject) => {

    const options = { delimiter: ["|",","],
                      noHeader: true ,
                      headers: ["header1", "header2"]
                    }

    csv(options)
    .fromFile(csvFilePath)
    .on('end_parsed',(convertedJson) => {
      resolve(convertedJson);
    })
    .on("done",(error) => {
      reject(error);
    })
  });
}

我的电话:

const converter = require ("./converter")();

let json;
json = converter.convert("./importSample.csv");
console.log(json);

当我执行代码时,我可以看到 promise 仍处于挂起状态:

Promise { <pending> }

我认为我必须使用 .then()功能,但我不知道在哪里或如何。

最佳答案

converter 函数你得到了 promise ,并且那个对象有方法 then。你应该做这样的事情。

const converter = require ("./converter")();

converter.convert("./importSample.csv").then(json => {
  console.log(json);
}).catch(error => {
  console.log(error);
});

Here你可以找到关于 Promises 的很​​好的教程,和 here是 Promises 的文档。

关于javascript - Node.js 无法履行 promise (Promise { <pending> }),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41874198/

相关文章:

javascript - Node 中并发事件 ('map-reduce' ) 的惯用同步?

node.js - nodejs逐行读取文件并在末尾获取其内容

javascript - 使用 Javascript onClick 更改 div 内容

javascript - Magento 2中的可折叠js是否接受CSS图标内容:“content:”\e622”” ;?

javascript - jQuery Ajax 调用出现意外循环

mysql - 如何将图像上传到mysql数据库并在pug模板引擎中显示来自mysql数据库的图像?

angularjs - 如何使用 Angular 或 Node JS 在现有 Excel 文件中写入

node.js - zsh:找不到命令:grunt-init

javascript - 将拒绝从外部 promise 传播到内部 promise

javascript - 自定义 sharepoint 2010 xslt 列表 - 通过 javascript 编辑项目 - 编辑后数据未刷新