Javascript &引用;“非法中断声明”;正在出现。有人能提出解决这个问题的理由吗
“非法中断声明”正在出现。有人能提出解决这个问题的理由吗Javascript &引用;“非法中断声明”;正在出现。有人能提出解决这个问题的理由吗,javascript,angularjs,automation,jasmine,protractor,Javascript,Angularjs,Automation,Jasmine,Protractor,“非法中断声明”正在出现。有人能提出解决这个问题的理由吗 this.selectOrganization = function() { organizationLocator.each(function(element) { FunctionLibrary.getText(element, organizationName).then(function(text) { logger.info(text);
this.selectOrganization = function() {
organizationLocator.each(function(element) {
FunctionLibrary.getText(element, organizationName).then(function(text) {
logger.info(text);
if (text.includes('ImageResizingOrg')) {
FunctionLibrary.click(element, organizationName);
break;
}
})
})
};
用于组合for each循环的每个迭代,并在希望打破循环时拒绝承诺
var promises = [];
organizationLocator.each(function(element) {
promises.push(FunctionLibrary.getText(element, organizationName).then(function(text) {
logger.info(text);
if (text.includes('ImageResizingOrg')) {
FunctionLibrary.click(element, organizationName);
return Promise.reject(false);
}
}));
});
return Promise.all(promises);
您不能中断它模拟本机
forEach
方法行为的每个方法,本机forEach
除了抛出异常之外,不提供中断循环的功能
请参阅以下引文:
除了抛出异常之外,没有其他方法可以停止或中断forEach()循环。如果需要这种行为,forEach()方法是错误的工具
提前终止可通过以下方式完成:
- 简单的循环
- 循环的…的循环
- Array.prototype.every()
- Array.prototype.some()
- Array.prototype.find()
- Array.prototype.findIndex()
其他数组方法:every()、some()、find()和findIndex()使用返回truthy值的谓词测试数组元素,以确定是否需要进一步迭代
但有一个解决方案是method,它使用回调函数的返回值来迭代下一个元素
each
对数组中的每个元素执行一次提供的回调
函数,直到找到其中一个callback
返回假值。如果找到这样的元素,every
方法立即返回false
数组示例。每个方法:
var orgs=['NSO','CRY India','WHO','ImageResizingOrg','Unicef'];
var returnval=true;
组织每个(函数(文本){
if(text.includes('imagesizengorg')){
//在这里,您可以像在代码中一样执行任何操作,如触发单击事件
returnval=false;
}
console.log(文本);
返回值;
});代码>break
s应该在循环中(for
,while
和do while
)您是否尝试过返回false
?从技术上讲,循环代码在each
函数下运行,您显示的代码是一个承诺/回调。您看过使用数组吗?each?@ibrahimmahrir我只是忘记了它只能与循环一起使用。我的孩子你能调查一下吗
var promises = [];
organizationLocator.each(function(element) {
promises.push(FunctionLibrary.getText(element, organizationName).then(function(text) {
logger.info(text);
if (text.includes('ImageResizingOrg')) {
FunctionLibrary.click(element, organizationName);
return Promise.reject(false);
}
}));
});
return Promise.all(promises);