Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5和JavaScript:如何使粘贴处理完全/更异步?_Javascript_Html_Filereader_Clipboarddata - Fatal编程技术网

HTML5和JavaScript:如何使粘贴处理完全/更异步?

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.

我正在使用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. 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,并且可以异步读取