Node works with an event queue. When you run the async operation, this operation is performed independently of the node in the background. node continues to execute the rest of your code in the current thread until it reaches the end of that thread (for example, everything goes back to the top of the stack). As long as node starts the current thread of execution, no other threads of execution will be executed in node (ignoring generators and fibers at the moment). That's why people call it single-threaded. It executes a specific thread of execution one at a time in succession, rather than multiple threads of execution in parallel. Need to finish before the next launch.
, , node . . , , , (, , ). (, , ), node , ( , , , ).
, async ( ), , . node , . - node, , , ...
, nodejs. , nodejs . async , .
, , , nodejs, .