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
Javascript 正在尝试nodejs的async.js_Javascript_Node.js_Async.js - Fatal编程技术网

Javascript 正在尝试nodejs的async.js

Javascript 正在尝试nodejs的async.js,javascript,node.js,async.js,Javascript,Node.js,Async.js,我对下面的代码有问题: var async = require("async"); function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7; i++) { if ((new Date().getTime() - start) > milliseconds){ break; } } }

我对下面的代码有问题:

var async = require("async");

function sleep(milliseconds) {
    var start = new Date().getTime();
    for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds){
            break;
        }
    }
}

function hello(no){
    console.log(no);
    async.forEach(no,function print_list(x, callback){
        console.log("I am task number : ", x);
        var sleep_time = Math.floor((Math.random()*10)+1);
        console.log(sleep_time);
        sleep(sleep_time*1000);
    },function(err){if (err){console.log(err);}});
}

list = [];
for (var a = 1000; a > 0;a--){
    list.push(a);
};
hello(list);
var async=require(“async”);
函数睡眠(毫秒){
var start=new Date().getTime();
对于(变量i=0;i<1e7;i++){
如果((新日期().getTime()-start)>毫秒){
打破
}
}
}
函数hello(no){
控制台日志(否);
forEach(否,函数打印列表(x,回调){
log(“我是任务编号:”,x);
var sleep_time=Math.floor((Math.random()*10)+1);
console.log(睡眠时间);
睡眠(睡眠时间*1000);
},函数(err){if(err){console.log(err);}};
}
列表=[];
对于(变量a=1000;a>0;a--){
列表。推送(a);
};
你好(名单);
在我看来,我希望这些代码不会互相阻塞,但我发现它们仍然被视为同步代码


我哪里做错了?

Node.js是单线程的,您的睡眠功能正在接管CPU

尝试使用setTimeout,以获得一个更真实的示例,说明它是如何工作的

function hello(no){
    console.log(no);
    async.forEach(no,function print_list(x, callback){
        console.log("I am task number : ", x);
        var sleep_time = Math.floor((Math.random()*10)+1);
        console.log(sleep_time);
        // use setTimeout
        setTimeout( function() {}, sleep_time*1000);
    },function(err){if (err){console.log(err);}});
}

Node.js是单线程的,您的睡眠功能正在接管CPU

尝试使用setTimeout,以获得一个更真实的示例,说明它是如何工作的

function hello(no){
    console.log(no);
    async.forEach(no,function print_list(x, callback){
        console.log("I am task number : ", x);
        var sleep_time = Math.floor((Math.random()*10)+1);
        console.log(sleep_time);
        // use setTimeout
        setTimeout( function() {}, sleep_time*1000);
    },function(err){if (err){console.log(err);}});
}