首页 新闻 会员 周边 捐助

求Nodejs大神,进来轻松拿分!一个简单的Node异步特性测试

0
悬赏园豆:30 [已关闭问题] 关闭于 2017-09-22 20:36
看的别人的文章,用的他的测试代码
我的结果是一下子打印出10个44,等了一会(可能是两秒?),一下子又打印出10个46.
初步接触Node异步,麻烦大佬详细解释下
原文中别人的机器跑出来是一下子打印10个就没了,原文作者是这么解释他的代码
那么怎么解释我跑出来的结果?
 
 
 
Lawliet__zmz的主页 Lawliet__zmz | 初学一级 | 园豆:4
提问于:2017-09-22 20:25
< >
分享
所有回答(1)
0
var j = 0;
    (function timer(){
            setTimeout(function () {
                j++;
                console.log( new Date().toLocaleString());
                if(j<10){
                    timer();
                }
            },2000);
    })();

同步代码你可以参考下上述代码,

这里你需要考虑下同步和异步,

 

异步中 的代码

 0.1s setTimeout1()
    0.2s setTimeout2()
    0.3s setTimeout3()
    0.4s setTimeout4()
    0.5s setTimeout5()
        ...
    2.1s 执行setTimeout1中的代码
    2.2s 执行setTimeout2中的代码
    2.3s 执行setTimeout3中的代码
    2.4s 执行setTimeout4中的代码
    2.5s 执行setTimeout5中的代码
        ...

同步代码

    0.1s setTimeout1()
    2.1s 执行setTimeout1中的代码
    2.2s setTimeout2()
    4.2s 执行setTimeout2中的代码
    4.3s setTimeout3()
    6.3s 执行setTimeout3中的代码
   
        ...

你可以去具体的了解下同步和异步的东西

樱花下的二哈 | 园豆:202 (菜鸟二级) | 2017-09-24 14:04

var j = 0;
(function timer(){
setTimeout(function () {
j++;
console.log( new Date().toLocaleString());
if(j<10){
timer();
}
},2000);
})();
这个是同步的话,那异步的代码是什么

支持(0) 反对(0) 德丽莎·阿波卡利斯 | 园豆:200 (初学一级) | 2018-09-21 10:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册