GoForum › 🌐 V2EX
分享一道 Node.js 的面试题,考察 JS 相关的最基本的掌握程度,代码完全来自官方文档
superhot ·
2026-01-15 17:03 ·
0 次点赞 · 2 条回复
简述以下代码的输出结果,并解释执行过程:
import { once, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
process.nextTick(() => {
ee.emit('myevent', 42);
});
const [value] = await once(ee, 'myevent');
console.log(value);
const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});
try {
await once(ee, 'myevent');
} catch (err) {
console.error('error happened', err);
}
以上代码来自这里
里面涉及到的基础知识点有:
Promiseasync/await- Node.js 中的微任务队列与
nexttick队列 - CJS 与 MJS 的差异
- Node.js 中的
EventEmitter
最后,这真的不算八股,AI 当然可以解释清楚,但这么一段简单清晰的代码,你还不知所以然的话,那对着 Vibe Coding 出来的屎山,最后只能束手无策了。
2 条回复
craftsmanship · 2026-01-15 17:23
添加回复
你还需要 登录
后发表回复
哈哈,这不是几年前我校招的时候面试官最“喜欢”的面试题嘛
看我随手出一道,console.log 1234 才是味道最足的
console.log(1); setTimeout(() => console.log(2), 0); process.nextTick(() => {
});
queueMicrotask(() => {
}); new Promise(resolve => {
}).then(() => {
});
new Promise(resolve => {
}).then(() => {
});
(async () => {
})();
console.log(19);