我发布了一段下面的代码,即“非异步功能”
Threshold=None
如果我们将运行上面的例子,这应该是好的和c()函数,将不得不等待直到a()和b()函数将完成工作。我期望所有的函数都应该并行运行(多线程(异步)函数)。任何人都可以帮助我如何使用nodejs
实现它答案 0 :(得分:0)
var Promise = require('bluebird');
return Promise.join(Promise.resolve().then(a),
Promise.resolve().then(b),
Promise.resolve().then(c),
function(){console.log('complete')});
答案 1 :(得分:0)
与评论中提到的一样,您可以使用child_process
或cluster.fork
。这是一个简单的child_process.spawn
实现:
(如果你不想使用eval,那么将这些函数写在不同的文件中并调用它们)
var spawn = require('child_process').spawn
...
spawn('node',['-e', '('+a.toString()+')()']) // send the function as string and evaluate in node
.stdout.on('data', console.log.bind(console))
.on('close',function(){
//call c() when a() ended
c()
})
.setEncoding('utf8')
spawn('node',['-e', '('+b.toString()+')()'])
.stdout.on('data', console.log.bind(console))
.setEncoding('utf8')