Javascript fs.rename回调函数未在nodejs文件系统中执行

Javascript fs.rename回调函数未在nodejs文件系统中执行,javascript,node.js,filesystems,fs,Javascript,Node.js,Filesystems,Fs,如果目录名称中包含空格,我将尝试重命名这些目录。 它正在正确重命名,但重命名后,定义的回调函数从未调用 下面是我的递归函数,其中fs用于文件系统和完整的目录树 使用此代码和路径应取决于文件夹结构 'use strict'; const [fs, path] = [require('fs'), require('path')]; fs.readdir(__dirname, (err, data) => { data.map(d => { if (d.includes(' ')

如果目录名称中包含空格,我将尝试重命名这些目录。 它正在正确重命名,但重命名后,定义的回调函数从未调用

下面是我的递归函数,其中fs用于文件系统和完整的目录树


使用此代码和路径应取决于文件夹结构

'use strict';
const [fs, path] = [require('fs'), require('path')];

fs.readdir(__dirname, (err, data) => {
data.map(d => {
    if (d.includes(' ')) {
        let name = d.replace(/ /g, '_');
        fs.renameSync(path.resolve(__dirname, d), path.resolve(__dirname, name));
    }
})});

它是异步运行的,因此在调用renameDir后查看dirs中值的任何代码都将在回调运行之前运行。@Quentin,是的,我只尝试了console.log'success',甚至。但它看起来好像从未被记录过。所有的目录都重命名得很好。@Quentin请在你这边试试,让我知道。请注意,即使我尝试单独使用CONSOLE.LOG,但它没有将其记录在控制台中,但操作/重命名过程成功。我使用的是fs.rename而不是fs.renameSync
'use strict';
const [fs, path] = [require('fs'), require('path')];

fs.readdir(__dirname, (err, data) => {
data.map(d => {
    if (d.includes(' ')) {
        let name = d.replace(/ /g, '_');
        fs.renameSync(path.resolve(__dirname, d), path.resolve(__dirname, name));
    }
})});