CNode

进行定时任务,发现一个奇怪的现象,调试模式和正式运行的打印结果顺序不同

问答
Hhezhongfeng发布于9 年前最后回复9 年前8 回复5448 浏览0 收藏

代码是这样的,在每分钟的0,10秒执行一次

schedule.scheduleJob('0,10,20,30,40,50 * * * * *', function () {
  console.log('before!');
  console.log(new Date());
  console.log('after!');
});

下面是npm start运行结果,和期望一致

before!
2017-06-20T07:42:10.005Z
after!
before!
2017-06-20T07:42:20.000Z
after!
before!
2017-06-20T07:42:30.002Z
after!
before!
2017-06-20T07:42:40.002Z
after!
before!
2017-06-20T07:42:50.002Z
after!
before!
2017-06-20T07:43:00.003Z
after!
before!
2017-06-20T07:43:10.002Z
after!
before!
2017-06-20T07:43:20.000Z
after!

这个是在vscode的调试结果node --inspect=32772 --debug-brk index.js ,但我打断点的时候顺序又正常了,可见他们的执行顺序应该是正确的,但是不知道为什么打印的时候确实这样的,请问有人明白吗?

before!
after!
Tue Jun 20 2017 15:40:10 GMT+0800 (中国标准时间) {}
before!
after!
Tue Jun 20 2017 15:40:20 GMT+0800 (中国标准时间) {}
before!
Tue Jun 20 2017 15:40:30 GMT+0800 (中国标准时间) {}
after!
before!
after!
Tue Jun 20 2017 15:40:40 GMT+0800 (中国标准时间) {}
before!
after!
Tue Jun 20 2017 15:40:50 GMT+0800 (中国标准时间) {}
查看回复

回复 (8)

H
hezhongfeng#1·9 年前

:)

H
hezhongfeng#2·9 年前

:)

Z
zswnew#3·9 年前

把输出时间改为普通字符串, 我感觉new一个对象需要时间...

来自酷炫的 CNodeMD

L
lei2231#4·9 年前

想看看完整的code From Noder

H
hezhongfeng#6·9 年前
引用 lei2231想看看完整的code From Noder

@lei2231 这还不完整吗? function里面的就是重复执行

W
WindTrace#7·9 年前

@hezhongfeng 看这篇文章 console.log是异步的吗?

参与回复
登录后即可参与回复。登录