在html5中使用filewriter api写两次会导致错误
writing twice using filewriter api in html5 leads to error
我正在尝试在HTML中使用BlobBuilder和FileWriter API将数据写入文件。我的问题是,如果我使用写函数两次,就会出现错误。以下内容代码执行正常:
var bb = new window.WebKitBlobBuilder();
bb.append('LOREL');
outWriter.write(bb.getBlob('text/plain'));
但是如果我把它改成如下(试着写两次)
var bb = new window.WebKitBlobBuilder();
bb.append('LOREL');
outWriter.write(bb.getBlob('text/plain'));
bb.append('LOREL');
outWriter.write(bb.getBlob('text/plain'));
我犯了一个错误。错误代码为:INVALID_STATE_ERR
如有任何帮助,我们将不胜感激。
问题是FileWriter.write()
是异步的,您试图在第一次写入完成之前向文件写入更多数据。根据规范,如果readyState==WRITING
,则应该抛出一个FileException
。很可能是你的情况。你需要这样的东西:
var bb = new window.WebKitBlobBuilder();
bb.append('LOREL');
outWriter.onwrite = function(e) {
bb.append('LOREL');
outWriter.write(bb.getBlob('text/plain'));
};
outWriter.write(bb.getBlob('text/plain'));
此外,我希望您的代码片段只是一个示例,而不是实际的追加、写入、追加、写入。否则,使用一个write()
:
var bb = new window.WebKitBlobBuilder();
bb.append('LOREL');
bb.append('LOREL');
outWriter.write(bb.getBlob('text/plain'));
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 单击jQuery会激发两次
- 如何避免在树上走两次
- button.单击两次删除附加操作后不工作
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- Chrome错误 asp.net 更新面板发布两次
- 具有超时的地理位置会导致错误处理程序被调用两次
- ascx控件两次添加到页面时调用了错误的javascript函数
- Javascript幻灯片循环两次很好,然后出现错误
- ECONNRESET一行查询数据库两次写错误[Node.js]
- JavaScript setTimeout循环只运行两次就返回错误:
- Chrome:未捕获错误:can't在同一帧中加载XRegExp两次
- 在html5中使用filewriter api写两次会导致错误
- 淘汰-验证显示相同的错误信息两次