NodeJS事件循环与异步模型专题测试
考察知识点
- 事件循环机制:六阶段执行顺序、各阶段职责、事件循环与主线程关系
- 微任务与宏任务:任务分类、执行优先级、nextTick与Promise队列
- process.nextTick:执行时机、使用场景、与setImmediate区别、递归调用风险
- 定时器与延迟执行:setTimeout/setInterval/setImmediate、延迟精度、执行顺序差异
- 异步I/O与回调:libuv实现原理、回调执行阶段、非阻塞I/O机制
- Promise与async/await:async函数执行特点、await与then区别、错误处理、状态管理
- 事件驱动与EventEmitter:on/once/emit方法、监听器顺序、移除监听器、最大监听器限制
关于Node.js事件循环的六个阶段,以下说法正确的是?
在Node.js事件循环中,pending callbacks阶段的主要作用是?
以下关于Node.js事件循环的说法,正确的是?(多选)
Node.js的事件循环运行在独立的线程中,与主线程并行执行,从而实现非阻塞I/O。
在Node.js中,以下哪个属于微任务(Microtask)?
以下代码执行后,控制台输出的顺序包含哪些特点?(多选)
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
process.nextTick(() => console.log('4'));
console.log('5');
关于process.nextTick(),以下说法正确的是?
以下关于process.nextTick()的使用,正确的是?(多选)
以下代码中,setTimeout的实际延迟时间可能超过100ms的原因是?
setTimeout(() => console.log('done'), 100);
在Node.js中,以下代码的执行结果是什么?
setTimeout(() => console.log('timeout'), 0);
setImmediate(() => console.log('immediate'));
在Node.js中,取消setTimeout定时器使用____________函数,取消setInterval定时器使用_____________函数,取消setImmediate使用______________函数。这些函数接收定时器返回的_________作为参数。
Node.js实现非阻塞异步I/O的核心机制是?
以下关于Node.js异步I/O的说法,正确的是?(多选)
以下代码的执行结果是什么?
async function test() {
console.log('start');
await Promise.resolve();
console.log('end');
}
test();
console.log('main');
Promise有三种状态:_______(进行中)、_________(已成功)、________(已失败)。状态一旦改变就不可逆转,只能从Pending变为_________或从Pending变为________。Promise.all方法在所有Promise都_______时才成功,Promise.race方法返回最先______的Promise结果。
以下代码中,事件监听器的执行顺序是?
const emitter = new EventEmitter();
emitter.on('test', () => console.log('A'));
emitter.on('test', () => console.log('B'));
emitter.prependListener('test', () => console.log('C'));
emitter.emit('test');
以下关于Node.js EventEmitter的说法,正确的是?(多选)
EventEmitter提供了移除监听器的方法:______________用于移除指定事件的某个监听器,__________________用于移除指定事件或所有事件的监听器,______是removeListener的别名。当监听器数量超过_______________方法设置的阈值时会发出警告,默认阈值是______。
Node.js采用的单线程并发模型的核心优势是?
📝 发现内容有误?点击此处直接编辑
长按或扫描二维码,立即体验