我对Node.js很陌生?我的问题是nodejs如何精确处理并发?我知道nodejs是单线程的,不等待请求完成,但这是否意味着我们没有任何控制权?
答案 0 :(得分:1)
以异步方式执行任务是NodeJS的主要优势之一。本质上,您的程序永远不会停止并且仅使用一个线程并异步执行操作,因此,在NodeJS中进行编程的方式将与传统的C / C ++完全不同。
大多数需要时间处理的操作(例如API调用)将使用回调,承诺来实现。在开始编码时,您将了解并习惯它。如果您需要控制事件的顺序,特别是在事件相互依赖的情况下,异步是一个很棒的程序包,它提供各种选项以串行,并行,自动,瀑布式和许多其他方式执行任务(您可以参考该文档位于:https://github.com/caolan/async)
这是一个使用async包串行执行操作的示例:
async.series([
function(callback) {
// Perform an API call
callback(null, 'one');
},
function(callback) {
// do some more stuff ...
callback(null, 'two');
}
],
function(err, results) {
// reach here after the functions 1 and 2 are completed
});