Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 NodeJS-ES6-Extend类Error作为错误响应的一部分返回我自己的类型_Javascript_Node.js_Typescript - Fatal编程技术网

Javascript NodeJS-ES6-Extend类Error作为错误响应的一部分返回我自己的类型

Javascript NodeJS-ES6-Extend类Error作为错误响应的一部分返回我自己的类型,javascript,node.js,typescript,Javascript,Node.js,Typescript,我想扩展类错误,并能够通过一些类似以下的调用返回自定义错误: throw new Error('MessageGoesHere', ObjectWithOtherResultGoesHere | or NULL, ErrorCode); 例如。。。假设我们有一个方法,如下所示,是我自己编的: public getInformation(value1: string, value2:string): Promise<MyDataResponse> { cons

我想扩展类错误,并能够通过一些类似以下的调用返回自定义错误:

throw new Error('MessageGoesHere', ObjectWithOtherResultGoesHere | or NULL, ErrorCode);
例如。。。假设我们有一个方法,如下所示,是我自己编的:

    public getInformation(value1: string, value2:string): Promise<MyDataResponse> {
        const promise = this.callFunction2(value1, value2)
        .then(result => {
            return result;
            })
            .catch(error => {
                MyDataResponse errorResponse = {
                    field1: value1,
                    field2: value2
                };

                throw new CustomError('Error getting information', errorResponse, 003);
            });

        return Promise.resolve(promise);
    }

但是,我无法执行this.status或this.newResultObject,因为它们不属于Error类,所以它从未返回值。那么我应该如何创建CustomError类呢?我应该从另一个错误扩展吗?

您的类正在定义status和newResultObject属性,因此您只需要设置它们。 你只需要改变一下

status = status || 500;

newResultObject = newResultObject;


在你们班

很好!我只是忘记了在我的类中声明这两个属性。一旦我定义了它们,我就可以执行this.status和this.newResultObject。谢谢
status = status || 500;

newResultObject = newResultObject;
this.status = status || 500;

this.newResultObject = newResultObject;