spawn 找不到命令时为什么触发 error,try/catch 能接住吗?
区分 spawn 的参数校验异常、异步启动失败和程序非零退出,解释 ENOENT 的命令与 cwd 来源,并用 Promise 包装示例展示及时监听 error 以及只结算一次的调用接口。
异步编程专题面试题第 4 页,显示第 151–200 题,共找到 292 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
区分 spawn 的参数校验异常、异步启动失败和程序非零退出,解释 ENOENT 的命令与 cwd 来源,并用 Promise 包装示例展示及时监听 error 以及只结算一次的调用接口。
Node.js 的 spawn 与 exec 有什么区别,怎么选择? 本文先给出可直接复述的结论,再用最小代码说明child_process spawn exec 区别的工作方式、判断依据、项目边界和常见误区。
在 Worker 线程中 AsyncLocalStorage 等异步上下文能否跨线程传递? 本文先给出可直接复述的结论,再用最小代码说明worker_threads AsyncLocalStorage 上下文的工作方式、判断依据、项目边界和常见误区。
worker.terminate() 的语义是什么,调用后还能复用该 Worker 吗? 本文先给出可直接复述的结论,再用最小代码说明worker terminate 终止 复用的工作方式、判断依据、项目边界和常见误区。
Node.js 的 CPU 密集任务应该切片、用 Worker,还是交给独立进程? 本文先给出可直接复述的结论,再用最小代码说明Node.js CPU 密集任务 拆分 setImmediate worker_threads的工作方式、判断依据、项目边界和常见误区。
以 fs.readFile 回调为具体上下文比较 setImmediate 与零延时定时器,说明 poll 到 check 的关系、定时器阈值,以及同步注册、await 续体和自定义事件的区别。
Node.js 事件循环有哪些阶段,Node 20 之后定时器位置有什么变化? 本文先给出可直接复述的结论,再用最小代码说明Node.js 事件循环阶段 timers poll check的工作方式、判断依据、项目边界和常见误区。
async_hooks 的 init、before、after、destroy 四个回调分别在异步资源生命周期的什么时候触发? 本文先给出可直接复述的结论,再用最小代码说明async_hooks init before after destroy 时机的工作方式、判断依据、项目边界和常见误区。
Node.js 的 async_hooks 模块能追踪什么,为什么它被标记为实验性但仍被广泛使用? 本文先给出可直接复述的结论,再用最小代码说明async_hooks 用途 实验性 asyncId的工作方式、判断依据、项目边界和常见误区。
AsyncLocalStorage 如何在 Node.js 中实现跨异步调用的请求级上下文(如 traceId)传递? 本文先给出可直接复述的结论,再用最小代码说明AsyncLocalStorage 请求上下文 traceId 传递的工作方式、判断依据、项目边界和常见误区。
哪些写法会导致 AsyncLocalStorage 的上下文在 Node.js 中丢失,比如事件监听或连接池复用? 本文先给出可直接复述的结论,再用最小代码说明AsyncLocalStorage 上下文丢失 EventEmitter 连接池的工作方式、判断依据、项目边界和常见误区。
在 Node.js 里做请求上下文传递,为什么优先 AsyncLocalStorage 而不是第三方 cls 或 zone 方案? 本文先给出可直接复述的结论,再用最小代码说明AsyncLocalStorage 对比 cls 请求上下文方案的工作方式、判断依据、项目边界和常见误区。
Node.js 的 AsyncResource 类解决什么问题,自定义异步资源(如手写队列)为什么要显式使用它? 本文先给出可直接复述的结论,再用最小代码说明AsyncResource 自定义异步资源 AsyncLocalStorage的工作方式、判断依据、项目边界和常见误区。
Node.js 中 executionAsyncId 和 triggerAsyncId 分别代表什么,如何用它们还原异步调用因果链? 本文先给出可直接复述的结论,再用最小代码说明executionAsyncId triggerAsyncId 区别的工作方式、判断依据、项目边界和常见误区。
Node.js EventEmitter 的 captureRejections 选项解决了异步监听器里的什么问题? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter captureRejections 异步监听器 rejection的工作方式、判断依据、项目边界和常见误区。
设计一个 Node.js 内部模块时,什么时候应该继承 EventEmitter 而不是直接回调或返回 Promise? 本文先给出可直接复述的结论,再用最小代码说明继承 EventEmitter 设计决策 回调 Promise 对比的工作方式、判断依据、项目边界和常见误区。
Node.js 的 events.on() 把 EventEmitter 转成异步迭代器,适用于什么场景,背压如何处理? 本文先给出可直接复述的结论,再用最小代码说明events.on 异步迭代器 EventEmitter Node.js的工作方式、判断依据、项目边界和常见误区。
Node.js 的 EventEmitter.emit 是同步还是异步派发?这对监听器里的异常有什么后果? 本文先给出可直接复述的结论,再用最小代码说明EventEmitter emit 同步 监听器异常的工作方式、判断依据、项目边界和常见误区。
Node.js 中 async 函数里 await 一个 Promise 后,后续代码作为什么类型的任务恢复执行? 本文先给出可直接复述的结论,再用最小代码说明await 恢复执行 微任务 Node.js async的工作方式、判断依据、项目边界和常见误区。
在 fs 回调等 I/O 回调里创建的 Promise.then 和 setImmediate 谁先执行? 本文先给出可直接复述的结论,再用最小代码说明I/O 回调内 Promise setImmediate 执行顺序的工作方式、判断依据、项目边界和常见误区。
Node.js 中 new Promise 的 executor 是同步还是异步执行,这对错误捕获有什么影响? 本文先给出可直接复述的结论,再用最小代码说明Promise executor 同步执行 错误捕获 Node.js的工作方式、判断依据、项目边界和常见误区。
在 Node.js 中嵌套的 Promise.then 链与多个并行 Promise 的回调按什么顺序交错执行? 本文先给出可直接复述的结论,再用最小代码说明Promise then 执行顺序 嵌套 微任务队列 Node.js的工作方式、判断依据、项目边界和常见误区。
Node.js 的 queueMicrotask() 与 process.nextTick、Promise.resolve().then() 有什么语义差别? 本文先给出可直接复述的结论,再用最小代码说明queueMicrotask process.nextTick 区别 Node.js的工作方式、判断依据、项目边界和常见误区。
官方建议哪些场景使用 process.nextTick,例如保证回调总是异步的 API 设计? 本文先给出可直接复述的结论,再用最小代码说明process.nextTick 使用场景 回调异步化的工作方式、判断依据、项目边界和常见误区。
process.nextTick 队列和 Promise 微任务队列都清空时谁先执行?为什么? 本文先给出可直接复述的结论,再用最小代码说明process.nextTick Promise 微任务 执行顺序的工作方式、判断依据、项目边界和常见误区。
区分 require ESM 的引入版本、默认启用和警告变化,解释同步模块图、间接顶层 await、返回命名空间与动态 import 的边界,避免只按 Node 大版本判断兼容性。
在 Node.js ESM 中直接 import .wasm 文件需要满足什么条件? 本文先给出可直接复述的结论,再用最小代码说明Node.js WebAssembly modules experimental-wasm-modules的工作方式、判断依据、项目边界和常见误区。
Node.js 的 domain 模块为什么被废弃,现在用什么机制做请求级错误上下文传播? 本文先给出可直接复述的结论,再用最小代码说明Node.js domain 废弃 AsyncLocalStorage 替代的工作方式、判断依据、项目边界和常见误区。
Node.js 服务进程退出码(0/1 及 process.exitCode 与 process.exit())应该如何规范使用? 本文先给出可直接复述的结论,再用最小代码说明Node.js 退出码 exitCode 与 process.exit 规范的工作方式、判断依据、项目边界和常见误区。
在 Express 4 中如何为所有异步路由统一建立错误边界而不漏掉 Promise 拒绝? 本文先给出可直接复述的结论,再用最小代码说明Express 4 异步路由统一错误边界的工作方式、判断依据、项目边界和常见误区。
Express 的错误处理中间件为什么必须是四个参数,异步路由抛错为何不会自动进入它? 本文先给出可直接复述的结论,再用最小代码说明Express 错误中间件 四参数 异步错误捕获的工作方式、判断依据、项目边界和常见误区。
Node.js HTTP 监听失败的 EADDRINUSE、EACCES 应怎样处理? 本文先给出可直接复述的结论,再用最小代码说明Node.js http server error 事件 EADDRINUSE 处理的工作方式、判断依据、项目边界和常见误区。
逐项解释未处理 Promise 拒绝的五种 Node.js 模式,区分 throw 与 strict 的事件顺序、警告与退出码,以及监听器对行为的影响,提供独立进程验证方法。
为什么 for await 遍历 Node.js Readable 时提前 break 会自动销毁流,这替代不了哪种显式错误处理? 本文先给出可直接复述的结论,再用最小代码说明Node.js readable for await break destroy的工作方式、判断依据、项目边界和常见误区。
Node.js Writable 在 end 之后再 write 会触发什么错误,为什么不能靠 try/catch 捕获异步流错误? 本文先给出可直接复述的结论,再用最小代码说明Node.js write after end ERR_STREAM_WRITE_AFTER_END的工作方式、判断依据、项目边界和常见误区。
Node.js fs.createReadStream 打开失败时错误发生在哪一步,调用方如何避免把 open 错误当作数据错误重试? 本文先给出可直接复述的结论,再用最小代码说明Node.js createReadStream open error ENOENT的工作方式、判断依据、项目边界和常见误区。
Node.js stream/promises 的 pipeline 与 finished 相比事件回调写法解决了哪些收尾竞态? 本文先给出可直接复述的结论,再用最小代码说明Node.js stream promises pipeline finished的工作方式、判断依据、项目边界和常见误区。
Node.js Readable.from 把数组或异步迭代器转成流时,背压是否自动生效? 本文先给出可直接复述的结论,再用最小代码说明Node.js Readable.from async iterator 背压的工作方式、判断依据、项目边界和常见误区。
在 Nuxt 3 的静态导出模式下,useAsyncData 的数据是否仍然在服务端获取?如何确保静态页面包含最新数据? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 静态导出 useAsyncData 服务端数据的工作方式、判断依据、项目边界和常见误区。
如何在 useAsyncData 中根据条件决定是否执行数据获取?例如仅在用户登录后才拉取数据? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData 条件执行 登录状态的工作方式、判断依据、项目边界和常见误区。
useAsyncData 的上下文对象(context)中包含哪些信息?如何在数据获取函数中使用它来访问请求头或路由参数? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData context 可访问请求头和路由参数的工作方式、判断依据、项目边界和常见误区。
useAsyncData 在服务端请求失败时,如何决定是否将错误传播给客户端?有哪些机制可以避免页面崩溃? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData 错误处理 服务端失败的工作方式、判断依据、项目边界和常见误区。
如何强制刷新 useAsyncData 缓存?是否有方法在组件内触发一次新的服务端数据获取? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData 强制刷新 缓存更新的工作方式、判断依据、项目边界和常见误区。
useAsyncData 在服务端渲染期间是否会被多次调用?如何确保每个页面只执行一次数据获取? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData SSR 单次执行的工作方式、判断依据、项目边界和常见误区。
在 Nuxt 3 的 Island 架构中,useAsyncData 的数据获取是否会在每个 Island 内独立执行?如何共享数据? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 Island useAsyncData 数据共享的工作方式、判断依据、项目边界和常见误区。
useAsyncData 是否支持多个数据源同时获取?如何组织多个 useAsyncData 调用以避免阻塞? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData 多个数据源 并发请求的工作方式、判断依据、项目边界和常见误区。
在 Nuxt 3 中,如何利用 useAsyncData 实现页面跳转前的预加载?需要满足哪些条件? 本文先给出可直接复述的结论,再用最小代码说明Nuxt 3 useAsyncData 页面跳转预加载条件的工作方式、判断依据、项目边界和常见误区。
异步消息队列场景如何注入和提取 Trace Context,消费者晚到数小时会怎样? 本文先给出可直接复述的结论,再用最小代码说明消息队列 Trace Context inject extract 异步的工作方式、判断依据、项目边界和常见误区。
数据库类程序该用 fsync 还是 fdatasync,为什么 fsync 是性能杀手? 本文先给出可直接复述的结论,再用最小代码说明fsync fdatasync 区别 性能 持久化的工作方式、判断依据、项目边界和常见误区。
io_uring 相比 epoll + 线程池做磁盘异步 I/O 解决了什么核心问题? 本文先给出可直接复述的结论,再用最小代码说明io_uring 共享环形队列 系统调用次数 异步IO的工作方式、判断依据、项目边界和常见误区。