首页 > 解决方案 > 调用函数时的node.js警告

问题描述

我有以下代码有效

if (fs.existsSync(dirName)) {
    __writeFile();
    return;
}

function __writeFile() {
    writeIntoFile(readStream, destFileName, reject);
    numOfFiles++;
}

但执行后我收到警告:

(节点:3547)[DEP0013] DeprecationWarning:不推荐调用没有回调的异步函数。

知道如何避免这种情况吗?

更新这是所有代码

yauzl.open(filePath, (err, zipFile) => {
            if (err) {
                __rejectAndLog(err);
                return;
            }
            zipFile.on('entry', __processEntry.bind(null, zipFile))
                .once('error', __rejectAndLog)
                .once('close', () => {
                    resolve();
                });
        });

        function __processEntry(zipFile, entry) {
            if (/\/$/.test(entry.fileName)) {
                return;
            }
            zipFile.openReadStream(entry, (err, readStream) => {
                if (err) {
                    __rejectAndLog(err);
                    return;
                }
                //Path to drop the files
                let destFileName =  '/' + entry.fileName;
                let dirName = path.join(res);
                if (fs.existsSync(dirName)) {
                    __writeFile();
                    return;
                }
                mkdirp(dirName, (err) => {
                    if (err) {
                        __rejectAndLog(err);
                    } else {
                        __writeFile();
                    }
                });
                function __writeFile() {
                    writeIntoFile(readStream, destFileName, reject);
                    numOfFiles++;
                }
            });
        }

根据要求,这是写入文件的内容

    function writeIntoFile(readStream, filePath, onError) {
        if (fs.existsSync(filePath)) {
            fs.chmod(filePath, '777');
        }
        var ws = fs.createWriteStream(filePath);
        ws.on('error', function (error) {
            onError(error);
        });
        readStream.pipe(ws);
    };

更新2

我尝试根据下面的答案更改它并且它不起作用(以及我应该将模式 777 放在哪里)

        function writeIntoFile(readStream, filePath, onError) {
        if (fs.existsSync(filePath)) {
            fs.chmod(filePath, 0o777, function (err) {

                var ws = fs.createWriteStream(filePath);
                ws.on('error', function (error) {
                    onError(error);
                });
                readStream.pipe(ws);

            });

        }

    };

标签: javascriptnode.js

解决方案


推荐阅读