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()

本文探讨了JavaScript中forEach函数的使用方式及其内部return语句的行为。解释了return仅能终止当前迭代回调,而不会立即退出整个forEach循环,更不会跳出外部函数。通过具体代码示例,展示了如何在节点检查流程中正确应用这一特性。

3948

被折叠的 条评论
为什么被折叠?



