5

この回答で説明されているように、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) blob の場合と同じように、引数としてFileReaderaを取得する方法はありますか? 3) 私は運が悪いのでしょうか?DataTransferItemasync

4

1 に答える 1

0

DataTransferItem::getAsFile() メソッドを非同期にする方法はありますか?

いいえ。同期として指定されています。ただし、これを非同期にする理由はまったくありません。ファイルへの参照はすぐに構築され、データのシャベルは組み込まれません。input.filesまだ読み込まれていないファイルへの参照を同期的に取得するのと同じように。

FileReaderaを引数として取得しDataTransferItemて、blob の場合と同様に非同期自体を実行できるようにする方法はありますか?

いいえ。item.getAsFile()ブロブを受け取るだけで、それを非同期で読み取ることができます。

于 2014-03-06T16:55:24.857 に答える