node之旅-day2

异步流程控制

js是单线程的语言,不会出现像java一样的多线程锁的问题,一次只能执行一个函数。

nimble

nimble是一个流程控制库,可以串行、并行执行方法等
项目地址 http://caolan.github.io/nimble/
下面是一个 nimble的demo:并行下载两个文件,最后将两个文件用tar命令集合起来。

var flow = require('nimble');
var exec = require('child_process').exec;

function downlaod(version, destination, callback) {
    var url = 'http://nodejs.org/dist/node-v' + version + '.tar.gz';
    var filePath = destination + '/' + version + '.tgz';
    exec('curl ' + url + ' >' + filePath,callback);
}

flow.series([
    function (callback) {
        flow.parallel([
            function (callback) {
                console.log('Downloading V0.4.6....');
                downlaod('0.4.6', '/tmp',function(res){
                    console.log('Download V0.4.6....');
                    callback();
                });
            },
            function (callback) {
                console.log('Downloading V0.4.7....');
                downlaod('0.4.7', '/tmp',function(res){
                    console.log('Download V0.4.7....');
                    callback();
                });
            }
        ],callback);
    },
    function () {
        console.log('archive downloaded files...');
        exec(
            'tar cvf node_distros.tar /tmp/0.4.6.tgz /tmp/0.4.7.tgz',
            function (error, stdout, stderr) {
                console.log('all done!');
                // callback();
            }
        );
    }
]);

项目地址:https://github.com/KinsomyJS/Node-Journey

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值