【问题标题】:Nimble parallel and series mix works in node.js灵活的并行和串行混合在 node.js 中工作
【发布时间】:2015-01-07 09:25:30
【问题描述】:

此操作手册中来自 node.js 的代码示例:

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

function downloadNodeVersion(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 Node v0.4.6...');
        downloadNodeVersion('0.4.6', '/tmp', callback);
      },
      function (callback) {
        console.log('Downloading Node v0.4.7...');
        downloadNodeVersion('0.4.7', '/tmp', callback);
      }
    ], callback);
  },
  function(callback) {
    console.log('Creating archive of 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();
      }
    );
  }
]);

但 flow.series 中的第二个函数(回调)未执行,即未创建最终的 .tar 存档。怎么了?

【问题讨论】:

    标签: javascript node.js nimble


    【解决方案1】:

    它在一个 exec() 块中 - 所以上下文丢失了。

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2020-12-22
      • 2016-01-20
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2013-09-16
      • 2018-03-14
      • 2016-07-10
      相关资源
      最近更新 更多