除了在主函数调用return,还有什么办法能终止主函数继续向后执行?
发布于 3 年前 作者 cd-xulei 3575 次预览 最后一次回复是 3 年前 来自 问答
function main () {
// other code
// 1. 目前的实现方式
if(!validateSomethind()){
return
}
// 2. 期望的实现方式
validateSomething()
// other code
}
function validateSomething () {
if("表达式"){
return true
}
// 这里除了抛错能终止主函数像后执行,还有其他方式吗?
return false
}
如上代码所示,类似的在业务开发中应该很常见。如果类似于validateSomething这样的方法在多处外部函数调用,多处外部函数还需要再写一次if判断。这种内外都是判断就感觉不那么好。大家对这种情况有其他见解吗?或者有什么更好的组织方式。
7 回复
可以考虑装饰器,虽然依然没有进入标准 类似
我也一直用的抛错,比较简单直接
楼上的没看懂……
朋友们有好方案记得 @ 我
async函数 可以返回Promise.reject(“error”), 应该比较简洁了
@daGaiGuanYu 在注解方法 ValidParm() 里面先执行验证逻辑,如果不符合就直接return,否则继续执行被注解的函数(比如 main)
@waitingsong 这个,,,,,不用注解,直接用 alidParam 方法,除了写法上更简洁还有别的优点吗
楼主主要想解决的问题应该是嵌套很多函数,立即停止,比如:
@cd-xulei 是这个意思吗
@daGaiGuanYu
差不多。我那个意思就 a b c 直接或间接调用d 。 如果是d返回false。外部函数就不继续向后执行了。
目前看来只有在d函数内 抛错的方法。虽然看起来不是很好的感觉,然后外部函数静默处理这个错误。
process.exit() 能用吗?