I am trying to return Array of Promise after processed my nested for loop.. Below is the code written to extract certain details from webpage using one of the protractor test framework..
this.getFulldetails = function () {
let nameValues = [];
return this.getAddressCount().then((values) => {
for (let m = 0; m < values; m++) {
browser.wait(EC.visibilityOf(element(by.css(getLinked(m)))), defaultWait),
nameValues.push(browser.findElement(by.css(getLinkedAddressCnt(m))).getText());
for (let i = 0; i < cValues; i += 1) {
browser.wait(EC.visibilityOf(element(locators.nameValue)), defaultWait);
nameValues.push(browser.findElement(by.css(getLinked(m)))
.findElement(by.css(getIndividual(i)))
.findElement(locators.nameValue)
.getText());
nameValues.push(browser.findElement(by.css(getLinked(m)))
.findElement(by.css(getIndividual(i)))
.findElement(locators.periodValue)
.getText());
}
})
}
return Promise.all(nameValues)
// return nameValues
});
};
When I return just 'return nameValues' then it is returning array[10] elements however when I return Promise.all(nameValues) it is returning empty array []... how can I resolve the promise in the above code.. sorry I am not advanced javascript developer and not used much of promise