async function is not waiting for the end

Solution for async function is not waiting for the end
is Given Below:

My goal is, if the first request is catching an error, i dont want it to make another request. Basically conditional request.

Action.js

let condition;

        Service.validation(payload).then(() => {
            condition = true;
        }).catch(errorMessage => {
            console.log("1")
            condition = false;
        })

        
        if (!condition) {
            console.log("NOT valid.. closing..")
            return;
        } else {
            console.log("VALID.. Calling another service")
            const promise = AnotherService.anotherRequest(url, payload);
            return promise.then().catch();
        }

Service.js

 async validation(payload) {
            return this.createOrUpdate(payload, "check");
    }

Generic class for crud

 async createOrUpdate(data, subPath = "") {

        try {
            if (data.id) {    
                const response = await this.rc().put(this.PATH + subPath, data);
                return response.data;
            }
            const response = await this.rc().post(this.PATH + subPath, data);
            return response.data;
        } catch (error) {
            throw this.handleError(error);
        }
    }

 rc = (responseType = "json") => {

        return axios.create({
            baseURL: this.RS_REST_URL,
            validateStatus: (status) => (status === 200 || status === 201),
            headers: {
                "Content-Type": CONTENT_TYPE_JSON,
                "Authorization": "Bearer " + localStorage.getItem(STORAGE_KEY_AT)
            },
            responseType: responseType,
            paramsSerializer: (params) => qs.stringify(params, {arrayFormat: "repeat"})
        });
    }

I make a request const response = await this.rc().post gets an error (in Generic class) and thats i want. But, after i catch an error;

if (!condition) {
            console.log("NOT valid.. closing..")

This part does not wait for service to set condition = false

Service.validation(payload).then(() => {
            condition = true;
        })**.catch(errorMessage => {
            condition = false;
        })**

it is an async function but code does not wait for it to finish.

IN THE CONSOLE

“NOT valid.. closing..”

“1”

Am i missing something here?

In Action. You need call await.

async function () => {
  let condition;
  await Service.validation(payload).....
  if (!condition) ...
}