Javascript Web worker:尝试读取在主线程中创建的文件时发生NotFoundError

Javascript Web worker:尝试读取在主线程中创建的文件时发生NotFoundError,javascript,html,google-chrome,web-worker,html5-filesystem,Javascript,Html,Google Chrome,Web Worker,Html5 Filesystem,在Chrome32中,我有一个JS应用程序,我将画布上的原始图像写入一个文件,我想关闭该文件并打开它,以便在worker中进行处理。 我将文件名传递给worker,我可以看到它已被找到并打开,但只要我尝试读取它,我就会得到一个DOM异常(NotFoundError) 在我的主线程中,我尝试将我的文件和文件编写器设置为未定义,以确保文件已关闭(我看不到执行此操作的方法),但这没有帮助。在任何情况下,如果文件被锁定,应该抛出NotReadableError,但我看不到这一点 如果我单步执行代码,当我

在Chrome32中,我有一个JS应用程序,我将画布上的原始图像写入一个文件,我想关闭该文件并打开它,以便在worker中进行处理。 我将文件名传递给worker,我可以看到它已被找到并打开,但只要我尝试读取它,我就会得到一个DOM异常(
NotFoundError

在我的主线程中,我尝试将我的
文件
文件编写器
设置为
未定义
,以确保文件已关闭(我看不到执行此操作的方法),但这没有帮助。在任何情况下,如果文件被锁定,应该抛出
NotReadableError
,但我看不到这一点

如果我单步执行代码,当我跨过
readAsArrayBuffer
行时,所有内容都会暂停大约5秒钟,然后抛出
NotFoundError


如果创建DirectoryReader并枚举所有文件,我可以看到我的文件存在。

您可能希望将图像传递给工作人员,而不是保存图像并让工作人员打开文件

这是一个带有示例代码的页面

但这取决于你的形象有多大

我发现这很有趣,但还没有尝试从计算机摄像头进行处理,所以它可能会帮助您


我需要通过文件条目访问文件:

rawFramesArrayBuffer = reader.readAsArrayBuffer(f.file());

谢谢,但我正在以每秒25帧的速度保存几分钟的图像。它可能最终成为几兆的数据。我宁愿将它保存到磁盘上,然后再进行处理。第二个链接是从相机上拍摄视频,这让我印象深刻。网络工作者可以保存它们,完成后再处理。谢谢。我明天去看看(这里很晚了)。欢迎您使用upvote,但我仍然想知道为什么会出现这种异常。不幸的是,这似乎是关闭延迟,但我在api中也没有看到close()函数。因此,让网络工作者进行保存似乎是最简单的解决方案。这是一个相当大的延迟。我“关闭”该文件(将我对该文件的引用和FileWriter设置为null),然后等待用户单击按钮,然后继续。为此,我记录了一个Chromium错误。
rawFramesArrayBuffer = reader.readAsArrayBuffer(f.file());