Node.js 通过递归实现异步流程控制(异步变同步)


demo.js:

const fs = require('fs');

fs.readdir('./public',function(err,files) {
    var wenjianjia = [];
    
    (function iterator(i) {
        if(i==files.length){  // 如果递归结束
            console.log(wenjianjia);
            return;
        }
        fs.stat('./public/'+files[i],function(err,stats) {  // 该函数是异步的。
            if(stats.isDirectory()){
                wenjianjia.push(files[i]);
            }
            iterator(i+1);  // 通过递归实现异步流程控制(异步变同步)
        });
    })(0);  // 立即执行函数
});

你可能感兴趣的:(Node.js)