gpt4 book ai didi

javascript - NodeJS + Javascript 如何导出值而不是 promise ?

转载 作者:太空宇宙 更新时间:2023-11-04 03:28:54 25 4
gpt4 key购买 nike

我是 NodeJS+JavaScript 的新手。在下面的 JS 中,当另一个 JS 需要时,excelData 返回一个 Promise。在导入 JS 中我可以解析并获取它的值。但是在不导出promise的情况下,如何直接导出数组呢?

我需要这个,因为我有一个不支持 Promise 的 JS。

var conf = require('../config');
var excel = require('exceljs');

var workbook = new excel.Workbook();

var excelData = workbook.xlsx.readFile(conf.intentExcel).then(function() {
var customerSheet = workbook.getWorksheet(conf.customerDataSheet);
var excelRows = [];
customerSheet.eachRow({
includeEmpty : true
}, function(row, rowNumber) {
if (JSON.stringify(row.values[1])) {
var rowObj = {
intent : JSON.stringify(row.values[1]),
level : JSON.stringify(row.values[2]),
optLvl1 : JSON.stringify(row.values[3]),
optLvl2 : JSON.stringify(row.values[4]),
optLvl3 : JSON.stringify(row.values[5]),
questionId : JSON.stringify(row.values[6]),
question : JSON.stringify(row.values[7]),
expAnswerId : JSON.stringify(row.values[8])
}
for ( var key in rowObj) {
if (rowObj[key] != null) {
rowObj[key] = rowObj[key].replace(/['"]+/g, '');
}
}
excelRows.push(rowObj);
}
});
return excelRows;
});

module.exports = {
excelData : excelData
};

最佳答案

我有一个回调包装器给你,但我不知道这是否有帮助。

var getDataFromExcel = function(callback) {
var excelData = workbook.xlsx.readFile(conf.intentExcel).then(function() {
var customerSheet = workbook.getWorksheet(conf.customerDataSheet);
var excelRows = [];
customerSheet.eachRow({
includeEmpty : true
}, function(row, rowNumber) {
if (JSON.stringify(row.values[1])) {
var rowObj = {
intent : JSON.stringify(row.values[1]),
level : JSON.stringify(row.values[2]),
optLvl1 : JSON.stringify(row.values[3]),
optLvl2 : JSON.stringify(row.values[4]),
optLvl3 : JSON.stringify(row.values[5]),
questionId : JSON.stringify(row.values[6]),
question : JSON.stringify(row.values[7]),
expAnswerId : JSON.stringify(row.values[8])
}
for ( var key in rowObj) {
if (rowObj[key] != null) {
rowObj[key] = rowObj[key].replace(/['"]+/g, '');
}
}
excelRows.push(rowObj);
}
});
callback(null, excelRows);
}).catch(function(err) {
callback(err, null);
});
};

module.exports = {
getDataFromExcel : getDataFromExcel
};

用法:

require('excel-module').getDataFromExcel(function(err, data) {
if (err) {
//handle error
return;
}
//handle data
});

关于javascript - NodeJS + Javascript 如何导出值而不是 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com