我希望退出for for循环,文本包含ImageResizingOrg。如果它是同步的,我可以很容易地做到这一点。由于javascript是异步的,我需要解决这个问题。任何解决方案
organizationLocator.each(function(element) {
FunctionLibrary.getText(element, organizationName).then(function(text) {
logger.info(text);
if (text.includes('ImageResizingOrg')) {
FunctionLibrary.click(element, organizationName);
}
})
})
答案 0 :(得分:1)
要解决循环问题,请使用filter功能。假设您的 if(error.hasOwnProperty('rejection'))
{
error = error.rejection;
}
是一个元素数组,您可以这样做:
organizationLocator
答案 1 :(得分:-2)
你可以通过在“then”方法中传递每个元素来使你的循环“同步”。
通过这样做,您可以随时停止循环。
var inc = 0,
doLoop = function (element) {
FunctionLibrary.getText(element, organizationName).then(function (text) {
logger.info(text);
inc += 1;
if (text.includes('ImageResizingOrg')) {
FunctionLibrary.click(element, organizationName);
} else if (inc < organizationLocator.length) {
doLoop(organizationLocator[inc]);
}
});
};
doLoop(organizationLocator[inc]);