callback関数が終了するまで処理を待ちたい。


monacaでandroidアプリを開発しています。

フォルダ内の複数ファイルの更新日付を取得するプログラムを作成していますが、  
callbackは非同期で動くためこれを1件ずつ確実に処理をするようにしたいのですが、  
callbackが完了するまで処理を待つことは可能でしょうか？

宜しくお願い致します。

[code]

    for (var index = 0; index < fileEntries.length; index++) {
      let entry = fileEntries[index];
      // とりあえず対象は.apkファイルのみ
      let name = entry.name.toLowerCase();
      if (name.indexOf('.apk') != -1){
        // この処理を完了まで待ちたい！！！
        entry.getMetadata(getMetadataSuccess, fail);
      }
    }
    
    function getMetadataSuccess(metadata) {
      //alert("modificationTime: "+  moment(String(metadata_datetime.toLocaleString())).format('YYYY/MM/DD HH:mm:ss'));
    }
    
[/code]




[Promise](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise)
を作って、[Promise.allSettled()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled)で一気に待つのことができます。

[code]

    let promises = [];
    
    for (var index = 0; index < fileEntries.length; index++) {
      let entry = fileEntries[index];
      // とりあえず対象は.apkファイルのみ
      let name = entry.name.toLowerCase();
      if (name.indexOf('.apk') != -1){
        // この処理を完了まで待ちたい！！！
        let promise = new Promise((resolve,reject)=>{
            entry.getMetadata(resolve, reject);
        });
        promises.push(promise);
      }
    }
    
    Promise.allSettled(promises).then(metadataArray => {
        //ここで続く。metadataArrayはmetadataの配列です
    });
    
[/code]

