HTML5和JavaScript:如何使粘贴处理完全/更异步?
我正在使用ClipboardData API在浏览器应用程序中实现复制粘贴功能HTML5和JavaScript:如何使粘贴处理完全/更异步?,javascript,html,filereader,clipboarddata,Javascript,Html,Filereader,Clipboarddata,我正在使用ClipboardData API在浏览器应用程序中实现复制粘贴功能 FileReader::readAsDataURL(blob)提供了文件数据的异步读取,这非常好 var items = (event.clipboardData || event.originalEvent.clipboardData).items; var reader = new FileReader(); reader.onload = function(event){ /*add item (i.e.
FileReader::readAsDataURL(blob)
提供了文件数据的异步读取,这非常好
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
var reader = new FileReader();
reader.onload = function(event){
/*add item (i.e. image) to page*/}; //callback
var blob = items[0].getAsFile(); //not async
reader.readAsDataURL(blob); //async
问题:1) 有没有办法使
DataTransferItem::getAsFile()方法异步?
2) 有没有一种方法可以让FileReader
将DataTransferItem
作为参数,这样它就可以像处理Blob一样执行async
3) 我运气不好吗
有没有办法使DataTransferItem::getAsFile()方法异步
不,是同步的。但是,绝对没有理由使其异步化——对文件的引用是快速构造的,并且不包含任何数据清除。正如input.files
同步获取尚未读入文件的引用一样
有没有办法让FileReader
将DataTransferItem
作为参数,这样它就可以像处理blob一样执行异步操作
不需要。它只需要item.getAsFile()
blob,并且可以异步读取