query and filter- what is wrong with my code

I don’t understand how is that the output for this code is:
final filter is:
coreNameFound:

if in my code the first output is “coreNameFound” and only then “final filter is”.
May be query method is async? So what is the “wait” method?
Please help!!!

export function buildFilter () {

// $w(“#datasetFields”).onReady( () => {
var filter = wixData.filter();
var coreName = “”;
//filter by fields category

      filter = filter.eq('fieldCategory', $w('#dropdownFieldCategory').value); 

      wixData.query('SK4CoreEvents') 
                .eq('_id', $w("#dynamicDataset").getCurrentItem("coreEvent").coreEvent) 
                .find() 
                .then(results => { 

let items = results.items;
let item = items[0];
coreName = item[“coreEventName”];
console.log(“coreNameFound:”+coreName);

                  });  

if (coreName.length>0)
{
console.log(“add to filter:”+coreName);
filter = filter.eq(‘coreEvent’, coreName);
}
console.log(“final filter is:”);
console.log(filter);
//finally, set the filter
$w(“#datasetFields”).setFilter(filter);
//});
}

Hey
First of all the getCurrentItem is to be used like below according to API Docs.

let itemObj = $w("#myDataset").getCurrentItem();
let coreEventId = itemObj.coreEvent;
// Then execute query
wixData.query('SK4CoreEvents')
  .eq('_id', coreEventId)
  .find()
  .then((results) => {
    if (results.totalCount > 0) {
      // Here you get results
      coreName = results.items[0].coreEventName; // Use this 
      console.log("add to filter:"+coreName);           
      filter = filter.eq('coreEvent', coreName);
    } else {
      // Here you don't get results
    }
    
    console.log("final filter is:");         
    console.log(filter);  // finally, set the filter           
    $w("#datasetFields").setFilter(filter);
  })

So it is important to stay within the results promise to make sure you get results and that you then can use. Also I made some changes in how to set the names and how to get the coreEventId from the current item in your Dynamic Page.