异步模式nodejs

时间:2016-01-13 15:00:33

标签: node.js

考虑以下代码:

function printVariable(variable){
    variable++;
    console.log(variable);
}
var i = 0;
var j = 0;
var k = 0;
var i = 1;
var j = 2;
var k = 3;
printVariable(i);// [1]
printVariable(j);// [2]
printVariable(k);// [3]
var i = 6;       // [4]
printVariable(i);// [5]

输出是:

2
3
4
7

据我所知,nodejs默认是异步javascript平台。

[5]呼叫是否可能在[4]之前运行?那么最后一行输出将是2?或[1]将日志1调用到控制台?

如果它每秒运行20000次,是否会保证声明的顺序?

另一方面,声明是否可能没有同步运行?

2 个答案:

答案 0 :(得分:1)

Node.js不是一种语言。 JavaScript是一种语言。

Node.js是一个允许执行Javascript代码并使调用异步操作(通常是IO相关操作)变得容易的平台。我们的想法是在事件上调用函数,管理事件队列和底层操作的节点(可以并行执行)。

但是总有一个线程执行你的代码。

您的代码不会延迟任何执行,它是完全同步的,并且始终会产生相同的输出。

答案 1 :(得分:1)

Node.js不是它的平台语言。

谈论你的代码,它是基本的JS代码和 您将值重新分配给i,j,k,因为JS是最新值的互穿语言。 因此,当您调用 printVariable 函数时,它将1,2,3作为输入。

如果您想在JS中学习Async概念,请观看此视频:

https://www.youtube.com/watch?v=8aGhZQkoFbQ