【问题标题】:Async parallel - how does it work?异步并行 - 它是如何工作的?
【发布时间】:2013-08-06 10:21:23
【问题描述】:

我想我可能对 async.js 的工作方式没有正确的认识。在下面的例子中,回调函数没有被执行,我不知道为什么。

async.parallel([
  function(){
    console.log('one');
  },function(){
    console.log('two');
  }
], function(err, results) {
  console.log('done!');
});

在控制台中,我有:

one
two

我也为这段代码做了笔http://codepen.io/tnguyen14/pen/GaJxl

我已多次阅读异步网站https://github.com/caolan/async#parallel 的文档,并尝试在线搜索有关如何使其工作的示例,但我仍然不明白。

如果有人能向我解释异步的工作原理以及我的代码有什么问题,我将不胜感激。

【问题讨论】:

    标签: async.js


    【解决方案1】:

    Async 期望来自它的参数的异步控制流,例如你通过调用提供的回调函数来传递关于完成的信号的函数。

    async.parallel 从输入列表中依次调用每个函数,然后在 n 个输入函数恰好发出 n 次完成信号后返回结果回调。

    async.parallel([
      function(callback){
        console.log('one');
        $('.thing').html('one');
        callback(); // this is the way to tell async.parallel "I'm done". It can happen from different stack frame
      },function(callback){
        console.log('two');
        $('.thing').html('one');
        setInterval(callback, 1000); // just to make it more async-ly.
      }
    ], function(err, results) {
      console.log('done!');
      $('.result').html('one');
    } );
    

    您在 codepen 上的示例:http://codepen.io/anon/pen/KBhob

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-01
      • 2017-07-09
      • 2017-06-22
      • 2018-04-14
      • 1970-01-01
      • 2019-02-25
      • 2018-02-27
      • 1970-01-01
      相关资源
      最近更新 更多