vendredi 11 septembre 2015

Intern: Chaining operations not returning promise

Using Intern I have to get an hidden json object from the page and then build a dictionary. After this, querying this dictionary I should perform an other action on the DOM. The problem is that I do not know how to bind these 2 things, because I want the second operation is executed after the first one is completed.

My code is something like:

    var self._formMap = null;

if(self._formMap === null || Object.keys(self._formMap).length === 0) {
    return remote.findByXpath(selector)
        .getAttribute('value')
        .then(function(value) {
            var jsonValue = JSON.parse(value);
            var formMap = {};
            for (var item in jsonValue) {
                if (jsonValue.hasOwnProperty(item)) {
                    var key = jsonValue[item][0].split(/[\/]+/).pop();
                    formMap[key] = item;
                }
            }
            return formMap;
        }).then(function (map) {
                self._formMap = map;
                return _super_.setInputInForm.call(this, [..., formMap, ..]); // function in another file, but that shares the same remote object.
        });

}

In the second step, when I call the setInputInForm, it's like the remote is undefined. Is it maybe because I'm returning the formMap in the first step? Could be a problem of promise? Furthermore, I would like to isolate the first steps, and put it into a function, always returning a promise.

Thanks.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire