Javascript 从子函数返回并在进一步的父函数中退出执行,无重复代码
我有一个类来返回响应Javascript 从子函数返回并在进一步的父函数中退出执行,无重复代码,javascript,node.js,Javascript,Node.js,我有一个类来返回响应 class responseHandler { constructor(payload){ this.payload = payload; } createUser(){ this.confirmMethod('post'); return this.response(201,"I am home"); } response(status,res
class responseHandler {
constructor(payload){
this.payload = payload;
}
createUser(){
this.confirmMethod('post');
return this.response(201,"I am home");
}
response(status,response){
return {
"status" : status,
"response" :{
"message" : response
}
};
}
confirmMethod(method){
if(method!==this.payload.method) return false;
return true;
}
};
现在,如果this.confirmMethod
返回false,我想退出createUser方法。我可以这样做
createUser(){
if(!this.confirmMethod('post')) return false;
return this.response(201,"I am home");
}
但这个代码的问题是,我必须在我必须确认方法的所有方法中复制粘贴这个if
条件。理想情况下,我也希望从父级退出,如果子级返回false而没有像当前代码那样检查它,那么这样的事情可能吗
这样的事情可能吗
很可能是没有
在像JS这样的语言中,唯一负责函数执行流的是函数本身。
不幸的是,这是其他类型问题的主要问题,例如使用承诺时的wait
传播,或者使用Array.prototype.forEach
而不是for
时无法从函数返回
因此,这些问题没有好的答案,你的问题也不应该有好的答案。
至少所有答案都会有某种外部结构,这基本上意味着我们只是替换if
,而不是去掉它。听起来像是作弊
到目前为止,我看到的唯一可能的方法是使用异常。
但这不仅可能很慢,而且也将是使用异常机制的错误方式。
但无论如何,这取决于你:)