回答編集履歴
1
補足
answer
CHANGED
@@ -2,6 +2,15 @@
|
|
2
2
|
|
3
3
|
どうやら`event.dataTransfer.items`はdropイベントのハンドラーが終了すると同時に空になってしまうようです。
|
4
4
|
|
5
|
+
今の場合、
|
6
|
+
```js
|
7
|
+
for (const item of items) {
|
8
|
+
const entry = item.webkitGetAsEntry();
|
9
|
+
await scanFiles(entry, results);
|
10
|
+
}
|
11
|
+
```
|
12
|
+
で1周目で`await`するため2週目以降は非同期的に実行され、そのときには`items`は空になっている、というのが今回の問題の原因です。
|
13
|
+
|
5
14
|
[FileEntry.file method makes dataTransferItemList empty - Stack Overflow](https://stackoverflow.com/a/13443728/7387340)
|
6
15
|
↑この方法ではdropイベントのハンドラー内で同期的に`event.dataTransfer.items`のすべてアイテムについて`.webkitGetAsEntry()`を実行して`FileSystemEntry`をすべて先にゲットしてしまうという方法をとっています。これにならうと、
|
7
16
|
|