ожидание возврата Base64-изображения в цикле javascript asyn c - PullRequest
0 голосов
/ 04 мая 2020

Мне снится кошмар, заставляющий асин c l oop работать. Мне нужно получить изображение как данные, чтобы сделать что-то с НО, но все, что я могу вернуть, это «undefined», и он действительно ждет этого результата !! Проще говоря, мне нужно получить изображение данных и передать его следующей функции, но не могу заставить его ждать !!

вот код

function getImages(aID){

   async function getFileContentAsBase64(path, callback){
       window.resolveLocalFileSystemURL(path, gotFile, fail);
       function fail(e) {
             alert('Cannot found requested file');
       }
       function gotFile(fileEntry) {
              fileEntry.file(function(file) {
                 var reader = new FileReader();
                 reader.onloadend = function(e) {
                      var content = this.result;
                      console.log('content looks as it should:::', content);
                  callback(content);
                 };
                 reader.readAsDataURL(file);
              });
       }
   }

   console.log("aData uploadImages:", aData);
    console.log("aData.length:", aData.length);
  (async () => {
    console.log("in sync length:::" + aData.length);
      for (let i = 0; i < aData.length; i++) {

        console.log("in loop:::")
        //  toastSuccess("fetching image.--.")
        var fileURL = 'filepath/filename.jpg';
        console.log(i + "-LOOKING FOR:::", fileURL);
        const getImage = await getFileContentAsBase64(fileURL, function(base64Image {//<<<<HERE HERE HERE --THIS IS THE ISSUE
         console.log("base64Image LOOKS AS IT SHOULD:::", base64Image);
       });
        console.log(i + "-IMAGEDATA COMES back as undefined", getImage);//<<<HERE HERE HERE - this is the issue. I need to get this value before the loop continues!!!
        console.log(i + "-s::: GOT IMAGE");
      //    toastSuccess("sending image. .-")
        var oParams = {id:1}//,body:getImage
        var sendImage = await doSomethingElse(getImage, oParams);

      }
  })();
}
...