Массив объектов, переданных в функцию, пуст - PullRequest
0 голосов
/ 10 января 2020

Иони c приложение написано в машинописном тексте:

 let files: any[] = [];
 files =this.getFiles("wildlife");
 console.log("files:", files);
  this.render(files); 

в этом выводе написано enter image description here

, что странно, потому что там 50 пунктов но это показывает Array (0). Проблема в том, что когда я передаю этот массив в функции:

  render( files) 
    {
     files.forEach(item => {
    console.log(item) <- does not exist

    });
    }

Массив пуст. Это почему ? Есть ли другой способ передать массив и l oop через его объекты?

EDIT:

getFiles(folder) {
    let files: any[] = [];

    this.file.listDir(this.file.applicationDirectory, 'www/assets/' + folder)
      .then((items) => {
        // console.log(items);

        items.forEach(item => {
          files.push({
            filename: item.name,
            name: this.getName( item.name)
          });
        });
      })
      .catch(err =>
        console.log("error: ", err));

    return files;
  }

1 Ответ

0 голосов
/ 10 января 2020

Вам нужно вызвать вашу getFiles функцию как асинхронную функцию.

let files: any[] = [];
 this.getFiles("wildlife")
   .then(res => {
     files = res;
     console.log("files:", files);
     this.render(files);
 }); 
...