nodejs中匿名函数看不懂的问题

exports.getAllAlbums = function(callback){

fs.readdir("./upload", function(err,files){
    var allAlbums = [];
    (function iterator(i){
        if(i == files.length){
            callback(allAlbums);
            return;
        }
        fs.stat("./upload/" + files[i],function(err,stats){
            if(stats.isDirectory()){
                allAlbums.push(files[i])
            }
            iterator(i + 1)
        })
    })(0); 

})

}

今天看这个函数莫名的卡住了,最后括号里面的(0)是什么意思啊,拜托懂得多的告诉俺这运行顺序,下面是调用

file.getAllAlbums(function(allAlbums){

    res.render("index",{
        "albums" : allAlbums
    });
})
阅读 5.1k
3 个回答

立即执行函数的参数,
就是
function iterator(i){
//...
}
iterator(0);

(function(){})(); 这个是创建一个函数并且立即执行的意思,当然也可以这样写(function(){}()),
(0)就是传入一个参素0
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题