Видимо я плохо понимаю асинхронную модель работы JS.
Ситуация следующая. Есть функция которая получает данные. Нужно вызывать другую функцию только после того, как данные получены.
Мне упорно кажется, что в следующем коде цикл for начинает работать еще до того как переменная получила данные:
getBaseMapByLayerIdContent(id);
console.log("Content was added for layer with id: ", id);
console.log("My Object is: ");
console.log(this.LoadedBaseMapLayersContent);
for(obj of this.LoadedBaseMapLayersContent) // уже выполняется, а в getBaseMapByLayerIdContent данных еще нет
{
console.log("can't get this string");
}
Вот полный код:
if(!this.LoadedBaseMapLayers.includes(id)) // если слой не был загружен, то загружаем его
                {
                  getBaseMapByLayerIdContent(id);
                  console.log("Content was added for layer with id: ", id);
                  console.log("My Object is: ");
                  console.log(this.LoadedBaseMapLayersContent); // данные выводятся, значит они есть
                  for(obj of this.LoadedBaseMapLayersContent)
                  {
                    console.log("А вот эта строка не вызывается. Как если бы переменная была пустая");
                  }
                }
Как исправить ситуацию?