【发布时间】:2014-10-14 08:08:24
【问题描述】:
我有这段带有 node.js 的代码。
我想做 2 个并行任务,我不在乎它们以什么顺序完成。最后两者都会在数据库中插入一些东西,但我必须先进行一些计算和一些字符串替换。
当我运行这个位时,我的测试函数总是先完成是否正常?
我执行代码 10-20 次,测试总是在 test2 之前完成。
async.parallel([
function (callback) {
v2 = test(200);
callback(null, v2);
},
function (callback) {
v3 = test2(300);
callback(null, v3);
}
], function (err, results) {
console.log(results)
});
我在这里的测试函数会有 2-3 个嵌套的 for 循环,会在内存中计算大量信息。
function test(a) {
for (var i = 0; i < 1000000; i++) {
a = a + 1;
}
console.log('Finished 1');
return a + 100;
}
这个函数应该先完成,因为里面只有一个操作...
function test2(a) {
console.log('Finished 2');
return a + 200;
}
【问题讨论】:
-
你如何测试它首先完成?如果只是它是数组中的第一个元素,那是因为 async 将输出顺序保留为函数的顺序。
标签: javascript node.js async.js