关于taskpool的传参问题咨询?

1、我的异步方法是这样的:
@Concurrent
function handleEvent(eventName:string,params:HashMap<string,Object>|null,header:HashMap<string,Object>|null):void{

}
2、我的调用是这样的:
let map = new HashMap<string,Object>()
let mapHeader = new HashMap<string,Object>()
mapHeader.set('session-id',this.getSessionId())
mapHeader.set('-uid',MYCommonParamsUtils.uid)
mapHeader.set("mode", MYCommonParamsUtils.mode)
TaskManager.getInstance().execute(handleEvent,eventName,map,mapHeader)
3、运行后闪退日志如下:
Error message:An exception occurred during serialization, taskpool: failed to serialize arguments.
Error code:
SourceCode:

return taskpool.execute(func, args);

我看了文档,说是支持map类型的:序列化支持类型包括:All Primitive Type(不包括symbol)、Date、String、RegExp、Array、Map、Set、Object、ArrayBuffer、TypedArray。
请问我要如何修改呢?

阅读 1.1k
1 个回答

序列化支持的类型包括:
除Symbol之外的基础类型、Date、String、RegExp、Array、Map、Set、Object(仅限简单对象,比如通过“{}”或者“new Object”创建,普通对象仅支持传递属性,不支持传递其原型及方法)、ArrayBuffer、TypedArray。HashMap和Map存在一定区别,建议将HashMap改为Map结构试试,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进