为了账号安全,请及时绑定邮箱和手机立即绑定

Node.js中输出顺序为什么和预期的不一样呢?

Node.js中输出顺序为什么和预期的不一样呢?

潇湘沐 2018-11-13 14:13:06
考察下面的代码,它用于用于输出指定目录下的文件上述代码输出的结果我不能理解,按照这个程序设计的逻辑,应该先是把目录下所有文件都列出来,然后计数器i==files.length后才输出“输出完毕”这个终结语。如上图所示,不但“输出完毕”这个终结语最先输出,而且打印顺序完全是错乱的,多次运行的打印顺序也不稳定。我在想是不是异步调用有时间差,所以将上述代码sleep(1000)注释部分去掉,但是结果依然与我所预期不一致:“文件如下”提示语先输出,此后停止1s后,后续语句几乎同时出,没有停顿,并且“输出完毕”这个终结语依然第一个被打印。综上所述,我想知道的是为什么打印结果不稳定,为什么“输出完毕”这个提示语首先被输出?为什么加上sleep(1000)这个暂停语句后,只有一开始停了1s,后面不再暂停而是同时输出?如何解决这个问题,即如何在修改尽可能少的情况下让“输出完毕”这个提示语最后输出?谢谢各位大佬赐教!
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号