3

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

var samp {
 m1: func1,
 m2: func2
}

根据我想并行调用所有三个函数的键数现在我使用以下串行运行的代码。

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

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

4

3 回答 3

4

查看async.parallel。你基本上会写:

async.parallel( [

    function ( callback ) {
        // Code
    },

    function ( callback ) {
        // Code
    }

], function ( error, results ) {
    // Both done
} );
于 2013-08-20T04:18:04.323 回答
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
});
于 2013-08-20T04:17:16.300 回答
1

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

var l = new Wire();

func1(l.branch('post'));
func2(l.branch('comments'));

l.success(function(results) { ... });
// result will be object with results: { post: ..., comments: ...}

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

于 2015-10-19T15:35:15.357 回答