Gustavo Filgueiras
Gustavo Filgueiras

Reputation: 411

How to convert Ajax (Jquery) into fetch async

I wrote this code and it's works perfect for me. But when i try to convert it to fetch, dosen't work because return a promise. I don't know how to use it as a async false on fetch.

            'getProjectConstants': function(constArray)
            {
                var result='';
                $.ajax({
                type:       "GET",
                url:        `${constProjectBaseUrl}/ajax/getProjectConstants/${constArray}`,
                async:      false,
                dataType:   "json",
                success: function(data) {
                result = data
            }
        });
        return result

I tried to do like this, but dosen't work

        fetch(`${constProjectBaseUrl}/ajax/getProjectConstants/${constArray}`)
        .then((response) => response.json())
        .then((response) => {
             // console.log(response)
             return response
        }) // end of .then((response) => {
        .catch(error => {
             console.log("[ajax.getProjectConstants] Error => " + error);
        }); // end of .catch(error => {

Upvotes: 0

Views: 502

Answers (1)

Tanay
Tanay

Reputation: 889

You can try this:

async function getProjectConstants(){
    const json = await (await fetch(`${constProjectBaseUrl}/ajax/getProjectConstants/${constArray}`)).json();
    return json;
}
ajax.getProjectConstants(['PROJECT_PASSWORD_MINIMUM', 'OWNER_NAME', 'DB_TBL_TIME_ZONE']).then((constant) => {
    console.log(constant.OWNER_NAME)
}).catch(console.error);

Upvotes: 2

Related Questions