Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我没有';t获取node.js的库异步,其中i';我错了?_Node.js_Asynchronous - Fatal编程技术网

我没有';t获取node.js的库异步,其中i';我错了?

我没有';t获取node.js的库异步,其中i';我错了?,node.js,asynchronous,Node.js,Asynchronous,我尝试了很多在nodejs中使用aync库,但我最简单的测试甚至都不起作用 var async = require('async'); var i = 0 ; var inc = function(){ i++; } ; var show = function(){ console.log(i) ; } ; var err = function(err){ console.log(err) ; } ; async.forever(inc,err) ; async

我尝试了很多在nodejs中使用aync库,但我最简单的测试甚至都不起作用

var async = require('async');

var i = 0 ;

var inc = function(){
    i++;
} ;

var show = function(){
    console.log(i) ;
} ;

var err = function(err){
    console.log(err) ;
} ;

async.forever(inc,err) ;
async.forever(show,err) ;
函数根本不循环,输出仅为

1
我做错了什么请。

async.forever()

var inc = function(done){
    i++;
    setImmediate(done);
};

var show = function (done) {
    console.log(i);
    setImmediate(done);
};
使用(或)使调用异步,因此不会出现堆栈溢出错误:

var inc = function(done){
    i++;
    done();
};
记住,
async
库不会使任务异步;它假定这些任务已经是异步的,并简单地帮助管理它们。将同步任务与
async
一起使用在大多数情况下仍然会阻塞。

async.forever()
回调
传递给
show
inc
,它们需要调用:

var inc = function(done){
    i++;
    setImmediate(done);
};

var show = function (done) {
    console.log(i);
    setImmediate(done);
};
使用(或)使调用异步,因此不会出现堆栈溢出错误:

var inc = function(done){
    i++;
    done();
};

记住,
async
库不会使任务异步;它假定这些任务已经是异步的,并简单地帮助管理它们。将同步任务与
async
一起使用在大多数情况下仍然会阻塞。

你很棒,它可以工作,我理解为什么,谢谢你的解释。你很棒,它可以工作,我理解为什么,谢谢你的解释。