Home > Net >  How to convert Ajax (Jquery) into fetch async
How to convert Ajax (Jquery) into fetch async

Time:04-17

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 => {

CodePudding user response:

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);
  • Related