Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript setImmediate之前的setTimeout_Javascript_Asynchronous_Timeout_Settimeout - Fatal编程技术网

Javascript setImmediate之前的setTimeout

Javascript setImmediate之前的setTimeout,javascript,asynchronous,timeout,settimeout,Javascript,Asynchronous,Timeout,Settimeout,此代码显示setTimeout在setImmediate之前。为什么会这样?我认为所有setimmedia都是在设置超时之前运行的 setImmediate(function() { console.log("i"); }); setTimeout(function() { console.log("t"); }, 0); var i; for (i = 0 ; i < 3000000000 ; ++i) {} setImmediate(函数(){ 控制台日志(“i”

此代码显示setTimeout在setImmediate之前。为什么会这样?我认为所有setimmedia都是在设置超时之前运行的

setImmediate(function() {
    console.log("i");
});

setTimeout(function() {
    console.log("t");
}, 0);

var i;
for (i = 0 ; i < 3000000000 ; ++i) {}
setImmediate(函数(){
控制台日志(“i”);
});
setTimeout(函数(){
控制台日志(“t”);
}, 0);
var i;
对于(i=0;i<3000000000;++i){}
根据:

如果两者都是从主模块中调用的,则计时将受到进程性能的限制(这可能会受到机器上运行的其他应用程序的影响)

但是,在某些情况下,这种行为确实会发生:如果在一个I/O周期内移动两个调用,则立即回调始终首先执行:

// timeout_vs_immediate.js
const fs = require('fs');

fs.readFile(__filename, () => {
  setTimeout(() => {
    console.log('timeout');
  }, 0);
  setImmediate(() => {
    console.log('immediate');
  });
});

这是否正在节点上运行?或者哪个浏览器?它在节点v5.2.0中运行