OJB1
OJB1

Reputation: 2785

Javascript Ajax Uncaught (in promise) undefined

I'm struggling with an ajax GET using a promise. If the ajax runs into an error, such as the URL is incorrect, the 'error: function ()' is called and I get an error in the browser debug saying "Uncaught (in promise) undefined"

The first two parts of the ajax function works OK i.e. if the ajax returns a success, then both inner conditions for result.success true/false are working, I just don't know how to resolve the reject call in the ajax error function at the bottom:

    var myVariable = "test";
    let promise = myFunction(myVariable);
    
    promise.then(function () {
        // Do Something           

    }).catch(function (message) {

        console.error(message);
    });     

    function myFunction(myVariable) {

    return new Promise(function (resolve, reject) {

        $.ajax({
            type: "GET", //send it through get method
            url: "/myURL/Edit?handler=GetBlahBlah",
            data: {
                sourceType: myVariable
            },
            contentType: "json",
            dataType: "json",
            success: function (result) {
                if (result.success == false) {
                    reject(result.responseText); // This works
                } else {
                    resolve(); // This works
                }
            },
            error: function () {
                reject("Error while making Ajax call! Get Trigger"); // NOT WORKING!!
            }
        });
    });
}

Upvotes: 1

Views: 2409

Answers (1)

OJB1
OJB1

Reputation: 2785

Turns out my original question does actually work correctly, I hadn't noticed at first that the calling method to this ajax GET request was coming from two different process in my javascript at different times and i hadn't included a catch block on the process that was actually calling this ajax the first time round. Apologies if I caused any confusion to anyone, my bad!

Upvotes: 1

Related Questions