Javascript 如何解释执行结果与node和brower不同

Javascript 如何解释执行结果与node和brower不同,javascript,node.js,Javascript,Node.js,nodejs(6.10.2LTS)中的执行和Chrome的结果就是这两幅图片。左边是节点,另一个是Chrome 当我执行多次时,节点中将出现上述两种不同的结果。 我知道,在浏览器运行时,我们可以用WhatWG和Promises/A+标准(任务队列机制)来解释事件循环 尽管如此,我还是像这样读了文件 , 我仍然无法解释这两次运行的不同结果。最重要的是如何解释nodejs的结果。您是在问为什么node中的顺序不一致(如图所示),还是在问node与浏览器的区别(如标题中所述,但没有显示结果)?@B

nodejs(6.10.2LTS)中的执行和Chrome的结果就是这两幅图片。左边是节点,另一个是Chrome

当我执行多次时,节点中将出现上述两种不同的结果。 我知道,在浏览器运行时,我们可以用WhatWG和Promises/A+标准(任务队列机制)来解释事件循环

尽管如此,我还是像这样读了文件 ,
我仍然无法解释这两次运行的不同结果。最重要的是如何解释nodejs的结果。

您是在问为什么node中的顺序不一致(如图所示),还是在问node与浏览器的区别(如标题中所述,但没有显示结果)?@Bergi我想我已经知道brower中的结果原因。所以重要的是在nodejs中。因为我一直认为node和chrome的引擎是相同的(v8),所以结果应该是相同的=。=是的,那些节点结果确实很奇怪。我也很好奇。你是在问为什么在node中会出现不一致的顺序(如图所示),还是在问node与浏览器有什么不同(如标题中所问,但没有显示结果)?@Bergi我想我已经知道了在brower中产生结果的原因。所以重要的是在nodejs中。因为我一直认为node和chrome的引擎是相同的(v8),所以结果应该是相同的=。=是的,那些节点结果确实很奇怪。我也很好奇。
setTimeout(function() {
  console.log('setTimeout1');
  Promise.resolve().then(function() {
    console.log('promise1');
  }).then(function() {
    console.log('promise2');
  })
}, 0);
setTimeout(function() {
  console.log('setTimeout2');
  Promise.resolve().then(function() {
    console.log('promise3');
  }).then(function() {
    console.log('promise4');
  })
}, 0);