forEach本身是个高阶函数,调用回调函数,所以在forEach内部的return只会先跳出forEach当前遍历调用的callback,不会直接跳出forEach
外部的函数。
ts:
saveNode(){
if(this.checkInputError(this.modbusDeviceInfo) && this.checkInputError(this.deviceNodeInfo)){
alert(`Please fill in required fields correctly. \n\n 请正确输入必要的字段信息`)
return;
}else{
let nodeExistFlag:boolean = false;
this.nodes.forEach(node => {
if(node.ValName == this.deviceNodeInfo.get('ValName').value)
{
nodeExistFlag = true;
alert(`Node: ${node.ValName} has existed. \n\n ${node.ValName} 已经存在,不可重复添加`);
return;
}
})
if(nodeExistFlag){
return;
}
}
return跳出顺序:当前node的callback => 下一次node的callback => forEach结束 => saveNode()