Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从子函数返回并在进一步的父函数中退出执行,无重复代码_Javascript_Node.js - Fatal编程技术网

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
,而不是去掉它。听起来像是作弊

到目前为止,我看到的唯一可能的方法是使用异常。 但这不仅可能很慢,而且也将是使用异常机制的错误方式。 但无论如何,这取决于你:)