我正在使用JSZip解压缩运行异步的目录。我想写一个解压缩文件,并返回与之相关的,像这样的文件的函数:重构承诺从函数返回
function unzipFile(filename){
const zipper = new jsZip()
return fs.readFile(filename, function(err, data) {
return jsZip.loadAsync(data).then(function(zip) {
return zip.files
})
})
}
但是这仅仅是返回undefined
。我怎样才能使这个异步,以便它在单个函数返回解压目录,如果我想设置一个变量等于它的输出将等待其完成?
因为在常规的回调返回(你不这样做要么)有没有效果 –
你甚至没有使用拉链 - 所以,基本面是错的 –
这是不可能的。学习如何使用回调。您可以使用async/await关键字作为承诺的语法糖,使其看起来像您正在返回的值,但在某个级别上,异步函数仍然会返回承诺,因此在某些时候您需要处理回调。我个人强烈建议人们不要使用异步/等待,直到他们理解回调和承诺。 – slebetman