[英]how do I exit (return) from a function inside a another function
[英]Javascript exit function with return from another function
通过代码可以更好地理解。 假设我具有以下功能:
const firstFct = function() {
if(!valid) {
return 'error...';
}
return ...
}
我想使用第二个功能退出firstFct 。 而不是使用if 。
const secondFct = function(value, msg) {
if(!value) {
return msg;
}
}
const firstFct = function() {
secondFct(valid, "error"); // this should exit **firstFct** only if !value
return ...
}
不知道是否有一种方法可以通过return实现。
您需要包装第一个调用的结果,以将结果与错误区分开来,以便提早退出。
const firstFct = function() {
if (!valid) {
return { error: 'error...' };
}
return ...
}
const firstFct = function() {
var temp = secondFct(valid, "error");
if (temp && typeof temp === 'object' && 'error' in temp) {
return temp.error;
}
return ...
}
或者使用异常处理并引发错误。
IMO,您需要在2种不同的逻辑之间进行区分:
换句话说:不要让secondFct
也决定它是否有效, 并抛出错误消息。
考虑一下:
const isValid = function(data) {
//some checks...
return flag; // true OR false
}
const app = function() {
// ...
if (isValid(data)) {
// handle error
return 'error ...'
}
return ...
那么这里是一个可能的解决方案。 尽管我不建议这样做。
(我建议Nina Scholz版本)
function myFunction() {myFunction:{
console.log('i get executed');
break myFunction;
console.log('i do not get executed');
}}
现在有了这个原理,您可以:
const firstFct = function() {myScope: {
secondFct(valid, "error") ? break myScope: null;
}};
现在,如果您返回真实值,那么将暂停执行,否则它将继续。 我知道这不是您想要的100%,但是它已经足够好了。
或者,您可以引发错误,这将挂起JavaScript执行。 我也不建议这样做。
通常,对于更复杂的示例,我们也许可以为您提供更好的帮助。 您的问题可能还有另一种解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.