【发布时间】:2019-09-08 05:13:04
【问题描述】:
我试图以承诺的形式返回一个数组。我首先解压缩了一个文件,然后使用 csv-parse 解析了该文件。我将所有返回的对象保存在一个数组中,然后返回这个数组
我试图在没有保证转换器没有抱怨的情况下返回。但我想扩展它
/**
* Wraps writeFile in a promise.
* @param content The Base64 content of the file to read.
* @returns A buffer containing the contents of the file.
*/
protected writeFileAsync(path: string, content: Buffer): Promise<IProblem[]> {
new Promise<Buffer>((resolve, reject) => {
fs.writeFile(path, content, "base64", (err) => {
if (err) {
reject(err);
}
resolve(content);
});
})
.then(result => {
fs.readFile(result, (err, data) => {
if (err) {
Log.error("Error while reading the zip file");
this.listOfProblems = [];
return this.listOfProblems;
}
let zip: JSZip = new JSZip();
zip.loadAsync(data)
.then(contents => {
Object.keys(contents.files).forEach(filename => {
zip.file(filename).async('nodebuffer')
.then(content => {
let parser: csvParse.Parser = csvParse((data, err) => {
if (err) {
Log.error("Error while reading the zip file");
this.listOfProblems = [];
return this.listOfProblems;
}
let problem: IProblem;
}) as csvParse.Parser;
fs.createReadStream(content).pipe(parser);
})
})
})
})
})
.catch(() => {
Log.error("Error while reading the zip file");
this.listOfProblems = [];
return this.listOfProblems;
});
return this.listOfProblems;
}
最后一行显示错误
【问题讨论】:
标签: node.js typescript promise