问题描述
我最近完成了为纯 C API 中的所有函数制作一个异步版本,用 N-API 包装以作为 nodejs 插件与 JS/TS 一起使用。
我必须解决的最后一个问题是确保 C POSIX 样式的错误(即返回的整数代码)在工作程序执行结束时正确传输到 JS(使用相应的字符串,我们有两个异常枚举和错误消息列表)。
当用 napi_throw_error
抛出时(就像我在所有调用的同步版本中所做的那样),在 napi_async_complete_callback
中,这些异常从未在 JS 级别被捕获(我想这是因为它是在不同的异步上下文中;我看到网上有人对 ajax 有类似的问题)。相反,我选择将我的错误构建为 napi_value
类型,并通过 via napi_reject_deferred
返回这些错误。这似乎具有预期的效果,在执行 try { await My_NapiWrapper_XYZ() } catch (ex) { ... }
时被正确捕获。
所以我真的没有问题要解决,但我很感兴趣。这些 napi_throw_error
抛出的错误可能会某处。虽然我不知道在哪里。应该在哪里寻找从 napi_throw_error
抛出的 napi_async_complete_callback
错误?你能给出一个代码示例吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)