How to extract data from this object?

82 views Asked by At

I am working on some legacy code for my workplace and cannot figure out how to process data from a data object that is returned. The retrieveThis function is supposed to retrieve the object data:

myObj.retrieveThis(new myObj.getThisData({num : 10, page : 1, sorting : "stampDescending"}), function () {myCallback(this);});
var myObj = function () {
    var getThisData = {
        // this function populates an array and returns it to the retrieveThis function
    }
    var theObject = {
        retrieveThis: function(a, b) {
            var OBJ = {};
            // OBJ is populated by the data from var getThisData...I checked
            setTimeout(function () {
                b(OBJ);
            }, 1000);
        }
    }
    return theObject;
})();

I am having trouble getting the data ("theObject") to my callback function (or at all). I pass this to myCallback(), where myCallback is:

function myCallback(obj) {
    alert(Object.keys(obj));
}

The alert box shows a list of keys including document, jQuery, and myObj. It looks like the data from OBJ is populated from the array allTheData, but I can't seem to pass this back (as return theObject;) to process it. Where am I going wrong here?

Note - I cannot modify this legacy code. I need to process "theObject".

1

There are 1 answers

2
Grundy On BEST ANSWER

You pass wrong callback function

inside you call it with parameters, so you should define it with parameters

myObj.retrieveThis(
    new myObj.getThisData({num : 10, page : 1, sorting : "stampDescending"}),
    myCallback);

in this case in first param to myCallback passed OBJ object