回答編集履歴
2
コード修正
answer
CHANGED
@@ -36,9 +36,10 @@
|
|
36
36
|
async function scanFiles(entry, tmpObject) {
|
37
37
|
if (entry.isDirectory) {
|
38
38
|
const entryReader = entry.createReader()
|
39
|
-
const entries = await new Promise(resolve => {
|
39
|
+
const entries = await new Promise((resolve, reject) => {
|
40
|
-
entryReader.readEntries(
|
40
|
+
entryReader.readEntries(
|
41
|
-
resolve(entries)
|
41
|
+
entries => resolve(entries),
|
42
|
+
err => reject(err)
|
42
43
|
)
|
43
44
|
})
|
44
45
|
await Promise.all(entries.map(entry => scanFiles(entry, tmpObject)))
|
1
微修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
自分で`Promise`のインスタンスを作るのは、`Promise`を返さないような非同期な処理を`Promise`に変換するときです。今の場合`entryReader.readEntries(...)`がそれです。
|
4
4
|
|
5
|
-
`scanFiles`
|
5
|
+
`scanFiles`が処理を終えたタイミングで何かをするには、それが`Promise`を返す必要があります。そしてその`Promise`はスキャンが終了した時にresolveしなければいけません。
|
6
6
|
|
7
7
|
```js
|
8
8
|
for (let i = 0, len = entries.length; i < len; i++)
|