vm.Module.evaluate() 将加载器错误转换为模块评估拒绝
作者: joyeecheung创建于 2025年10月13日更新于 2026年9月17日
标签vmesmstale
这在 https://GitHub.com/nodejs/node/pull/60205#discussion_r2423587581 中出现了,当时我试图让 `vm.Module.evaluate()` 返回模块评估的 promise 如原样(因此对于合成模块和没有 TLA 的源文本模块,同步完成),目前验证错误 `ERR_VM_MODULE_STATUS`,`THROW_ERR_SCRIPT_EXECUTION_TIMEOUT` 和 `THROW_ERR_SCRIPT_EXECUTION_INTERRUPTED` 总是会被拒绝,因此对于同步加载器,它们要么在加载出错时将这些底层拒绝暴露给用户,要么被迫变成异步,因为它无法同步捕获这些错误并修复它们。也就是说,它们无法做出如下的操作:
内容来源: nodejs/node