如何在Jaseci中不通过report返回walker的执行结果?
在Jaseci框架中不依赖report返回Walker结果的方案
要避免report堆积冗余内容、仅返回目标结果,直接在Walker中使用return语句返回结果即可,无需调用report方法。
冗余写法(会堆积报告内容)
如果多次调用report,所有内容都会被加入全局报告:
walker example_walker { report "jdsjdbjs"; report "dndkfndkfn"; report {"response": "xyz"}; }
执行后报告包含所有冗余内容:
report: [ "jdsjdbjs", "dndkfndkfn", {"response": "xyz"} ];
优化写法(仅返回目标结果)
用临时变量存储中间逻辑的内容,最后通过return返回目标结果,不调用report:
walker example_walker { # 存储中间内容,不输出到报告 temp mid_content_1 = "jdsjdbjs"; temp mid_content_2 = "dndkfndkfn"; # 直接返回需要的结果 return {"response": "xyz"}; }
执行后仅返回目标结果,全局报告不会被冗余内容污染:
report: [ {"response": "xyz"} ];
关键说明
- 中间逻辑的内容用
temp变量存储即可,不要调用report写入全局报告 return语句会直接返回指定结果,不会在报告中堆积额外内容- 仅当需要持久化写入全局报告时,再使用
report方法
内容的提问来源于stack exchange,提问作者Shawn Jemmott
相关产品推荐
相关产品推荐

