第1章-安装Node.js及相关要点-1.6.优化Node.js中的回调函数

CallBacks可以让Node.js代码异步执行,但是当不熟悉JavaScript的Java或者PHP开发人员看到回调Hell的Node.js代码时,肯定大吃一惊,

fs.readdir(source, function(err, files){
    if(err){
        console.log('Error finding files:' + err);
    }else{
        files.forEach(function(filename, fileIndex){
            console.log(filename);
            gm(source + filename).size(function(err, values){
                if(err){
                    console.log('Error identifying file size:' + err);
                }else{
                    console.log(filename + ':' + values);
                    asppect = (values.width/values.height);
                    widths.forEach(function(width, widthIndex){
                        height = Math.round(width/aspect);
                        console.log('resizing' + filename + 'to' + height + 'x' + height);
                        this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err){
                               if(err) console.log('Error writing file: ' + err); 
                         })
                    }.bind(this))
                }
            })
        })
    }
})

当然,使用两个空格的缩进形式时,他看起来还可以。
然而我们要知道的是,回调代码可以用事件的emit或者promise的方式进行替代,或者直接使用异步库也可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值