javascript — JS ждет рекурсивной функции для поиска всех файлов MP3 и Android

JS ждут рекурсивной функции для поиска всех файлов MP3 и Android

Я хочу получить список всех моих файлов MP3 и вернуть список только после завершения поиска, я использую этот код, но он не работает, как я ожидаю:

(работает на NativeScript)

 const fs = require("tns-core-modules/file-system"); const root = android.os.Environment.getExternalStorageDirectory().getAbsolutePath().toString(); let retrievedData = []; export async function fileRetriever( mode , path=root ) { retrievedData = []; console.log('start'); if ( mode == 'songs' ) retrievedData = await songSeeker(); console.log('should be received'); console.log(retrievedData); console.log('stop'); return retrievedData; } function songSeeker ( path = root ) { let documents = fs.Folder.fromPath( path ); documents.getEntities() .then( ( entities ) ={amp}gt; { entities.forEach( ( entity ) ={amp}gt; { // ------ catch on Folder if ( fs.Folder.exists( entity.path ) ) { songSeeker ( entity.path ); // ------ catch on File } else if ( entity.extension == '.mp3' ) { let tmpData = { title: entity.name , path: entity.path }; retrievedData.push( tmpData ); } } ); } ).catch( ( err ) ={amp}gt; { console.log(err.stack); } ); return retrievedData; } 

Я ожидаю получить полный список, но он возвращает только первый файл!

результат:

 JS: 'start' JS: 'should be received' JS: [ { title: 'Hatef music.mp3', JS: path: '/storage/emulated/0/Hatef music.mp3' }, JS: [length]: 1 ] JS: 'stop' 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector