我正尝试通过以下方式将文件解压缩。
class FileDownloader{
void downloadCompleteZip(Function(double) listenerFunction){
Map map = {
'fileRoot': localPath,
"filePath": completeZipLocalPath,
"listener": listenerFunction,
"unzipPerc": unzipPerc
};
await compute(unzipCompleteZipToDisk, map);
}
}
void unzipCompleteZipToDisk(Map params) async {}
当我调用downloadCompleteZip函数时,出现以下错误:
无效的参数:隔离消息中的参数非法:(对象为
闭包-函数'':。)
我在map中的变量类型是String和Function。我认为问题是即时通讯试图在地图内部传递一个函数:
"listener": listenerFunction,
我的downloadCompleteZip函数更长,为示例起见我简化了它。我真的需要传递侦听器密钥,因为它会发送消息以更新UI。我该如何解决函数无法在计算内部的映射内传递的问题?
Also, kindly please dont suggest third party lib solutions. I have seen that libs like this can help. I am trying to keep 3rd party dependencies as low as possible.