我正在使用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