setTimeout(fn, 0)与setImmediate()的区别是什么
 发布于 10 年前  作者 fengliner  5579 次预览  最后一次回复是 10 年前  来自 问答 

如下代码:

setImmediate(function() {
  console.log('setImmediate');
});
setTimeout(function() {
  console.log('setTimeout');
}, 0);

输出结果为什么有的时候是:
setTimeout
setImmediate
有的时候却是:
setImmediate
setTimeout

如下代码:

setImmediate(function() {
  console.log('setImmediate');
});
setTimeout(function() {
  console.log('setTimeout');
}, 0);
console.log('正常执行');

执行结果始终是:
正常执行
setTimeout
setImmediate
第一段代码输出结果不一样的原因是什么?