nodejs如何将解压文件代码改为同步

新手上路,请多包涵

问题描述

项目中有块需要解压文件后对文件进行处理,现在的代码是异步的。遍历文件夹时返回都是空,如何将其改为同步代码

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
var fs = require('fs');
var unzip = require('unzip');
fs.createReadStream('/home/app/yyzz/zip/1.zip').pipe(unzip.Extract({ path: '/home/app/yyzz/image/' }));

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 3.6k
2 个回答
const unzip = require('unzip')
const fs = require('fs')

function unzipSync() {
    return new Promise((resolve, reject) => {
        fs.createReadStream('/home/app/yyzz/zip/1.zip').pipe(unzip.Extract({
            path: '/home/app/yyzz/image/'
        })).on('close', () => {
            console.log('stream close')
            resolve()
        }).on('error', (err) => {
            reject(err)
        })
    })
}

(async function () {
    try {
        await unzipSync()
    } catch (e) {
        console.log(e)
    }
    console.log('unzip success')
})()

改成 async/await 就好了吧

新手上路,请多包涵

-------只是提供一个想法,欢迎指正------
可以使用await

推荐问题