使用Intern我必须从页面中获取一个隐藏的json对象,然后构建一个字典。在此之后,查询这个字典我应该对DOM执行其他操作。 问题是我不知道如何绑定这两个东西,因为我希望第二个操作在第一个操作完成后执行。
我的代码类似于:
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.
});
}
在第二步中,当我调用setInputInForm
时,它就像遥控器未定义一样。是不是因为我在第一步中返回了formMap?可能是一个承诺的问题?
此外,我想隔离第一步,并将其放入一个函数中,总是返回一个承诺。
感谢。