javascript - 调用函数时的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);
});
}
};
解决方案
推荐阅读
- c - 在 C 语言中,我可以使用 `<` 或 `>` 来比较指向 NULL 的指针吗?
- gnuplot - 使用 GNU Plot 绘图,标题基于列名
- autodesk-forge - Autodesk Forge - 捕获问题位置的图像
- git - 为什么我不能推送到heroku?
- php - Laravel:从Json数据中获取邮递员测试的用户ID为空
- ios - 如何在 Swift 中测试和模拟属性包装器?
- javascript - 控制台中的 JavaScript 错误 - 模态窗口
- python - 是否可以将 Azure 事件中心接收器与 Flask 集成并在 Flask 中接收数据?
- javascript - 为什么 guild.members.fetch 超时
- sorting - 如何在 spark rdd 中通过自定义显示前 N 个结果?