Javascript JS等待递归函数来查找Android上的所有MP3文件

Javascript JS等待递归函数来查找Android上的所有MP3文件,javascript,async-await,Javascript,Async Await,我想检索我所有MP3文件的列表,并仅在搜索完成后返回列表,我使用此代码,但它无法按预期工作: (它在NativeScript上运行) 我希望得到完整的列表,但它只返回第一个文件 结果是: JS: 'start' JS: 'should be received' JS: [ { title: 'Hatef music.mp3', JS: path: '/storage/emulated/0/Hatef music.mp3' }, JS: [length]: 1 ] JS: 'stop'

我想检索我所有MP3文件的列表,并仅在搜索完成后返回列表,我使用此代码,但它无法按预期工作:

(它在NativeScript上运行)

我希望得到完整的列表,但它只返回第一个文件

结果是:

JS: 'start'
JS: 'should be received'
JS: [ { title: 'Hatef music.mp3',
JS:     path: '/storage/emulated/0/Hatef music.mp3' },
JS:   [length]: 1 ]
JS: 'stop'

可能重复“我使用此代码,但它不能像我预期的那样工作”有什么问题?发生了什么,你期望发生什么?哪里(大致)失败了?我更新了帖子,并提供了更多信息。我建议用TypeScript而不是JavaScript重写代码,因为你的
songSeeker
函数似乎没有返回
Promise
,但调用方正在使用
Wait
,TypeScript会显示类似的错误。此外,对集合使用链接时,不应改变共享状态(即不要执行
retrievedData.push(tmpData)
,而应使用
筛选
映射
等技术。可能重复“我使用此代码,但它不能按预期工作”它有什么问题?发生了什么?你期望发生什么?在哪里(大致)失败了吗?我更新了帖子,并提供了更多信息。我建议用TypeScript而不是JavaScript重写代码,因为你的
songSeeker
函数似乎没有返回
承诺
,但是调用方正在使用
wait
,TypeScript会显示类似的错误。另外,当使用collecti链接时在这种情况下,您不应该改变共享状态(即,不要执行
检索数据.push(tmpData)
,而是使用
筛选
映射
等技术。
JS: 'start'
JS: 'should be received'
JS: [ { title: 'Hatef music.mp3',
JS:     path: '/storage/emulated/0/Hatef music.mp3' },
JS:   [length]: 1 ]
JS: 'stop'