Google Document AI长时运行操作元数据状态值不一致问题
Google Document AI LRO 元数据状态解析不一致问题
问题概述
检查Google Document AI表单处理器的长时运行操作(Long Running Operation,LRO)状态时,发现decodedOperation.metadata的JSON表现形式在执行过程中存在不一致性。即便在checkBatchProcessDocumentsProgress(operation.name)调用后使用then(),operation响应仍无法即时完成解析,该问题在Google Speech的同类LRO代码中并未出现。
上下文信息
- 代码第24行的
console.log输出中,decodedOperation.metadata可正常解析为包含字符串类型state(例如"RUNNING")的JSON对象。
核心问题
- 代码第27行直接访问
decodedOperation.metadata.state时,返回的是数字值(如RUNNING对应2,SUCCEEDED对应3),导致decodedOperation.metadata.state == "SUCCEEDED"的判断逻辑永远无法触发。
复现环境
- Node.js版本:
12.02 - 依赖包版本:
@google-cloud/documentai: latest
排查结果
通过util.inspect工具排查发现,decodedOperation.metadata实际是BatchProcessMetadata实例,其内部包含状态枚举映射,仅在JSON序列化时才会将状态转换为字符串形式。
内容的提问来源于stack exchange,提问作者redvivi
相关产品推荐
相关产品推荐

