并行运行多个异步函数

时间:2013-08-20 04:13:16

标签: node.js asynchronous control-flow

我有一个包含两种不同方法的对象

var samp {
 m1: func1,
 m2: func2
}

根据我想要并行调用所有三个功能的按键数量 现在我使用以下连续运行的代码。

switch (sampType) {
            case "m1":
            {
                return new func1();
                break;
            }
            case "m2":
            {
                return new func2();
                break;
            }
            default:
            {
            }
        }

如何在node.js中并行执行所有方法?对此有任何帮助将非常有帮助

3 个答案:

答案 0 :(得分:4)

结帐async.parallel。你基本上写道:

async.parallel( [

    function ( callback ) {
        // Code
    },

    function ( callback ) {
        // Code
    }

], function ( error, results ) {
    // Both done
} );

答案 1 :(得分:1)

尝试使用Step.jsbacon.jsasync

使用bacon.js,您可以执行以下操作:

var result  = Bacon.fromNodeCallback(func1, parameters).toProperty();
var onemore = Bacon.fromNodeCallback(func2, parameters).toProperty();

这两个函数将并行执行。然后你可以有一个函数来使用这两个变量:

var combined = Bacon.combineAsArray(result, onemore);
combined.onValue(function (an_array) {
   // do stuff with an_array, which contains result and onemore
});

答案 2 :(得分:1)

另一种优雅的方法 - 使用“布线”:

import ReactDOM from 'react-dom' ;

https://github.com/garmoshka-mo/mo-wire