简体   繁体   English

Promise 函数在 Angular 6 中不返回错误

[英]Promise Function not return error in Angular 6

  Call(apiurl, model) {
        return new Promise((resolve, reject) => {
            this.adminService.add<any>(apiurl, model).toPromise().then(res => {
               return resolve({
                    'error': false,
                    'data': res
                });
            }), error => {
                return reject({
                    'error': true,
                    'data': error
                });
            }
        });
    }

This is my function.这是我的职能。 When I call this function and API response is 200 Ok response then it's return response but when error t throw by API then it does not return an error当我调用此函数并且 API 响应为 200 Ok 响应时,它是返回响应,但是当 API 抛出错误时,它不会返回错误

public add<T>(APIpath, data): Observable<T> {
        return this.http.post<T>(apiPath, data);
}

This is my generic Function Which is used in call Function for call API这是我的通用函数,用于调用函数调用 API

this.Result = await this.Call("API Path", Model);

This is code of calling this function and I Want to store response in this Result Variable这是调用此函数的代码,我想将响应存储在此结果变量中

It's because of the wrong placement of error block.这是因为错误块的位置错误。 You could alter your code as below to make it work.您可以按如下方式更改代码以使其正常工作。 Hope you are using TypeScript希望你正在使用TypeScript

var promise = new Promise(function(resolve, reject){
    return this.adminService.add<any>(apiurl, model).toPromise().then(res=>{
        resolve({
            'error': false,
            'data': res
        })
    }).catch(error=>{
        resolve({
            'error': true,
            'data': error
        }) 
    });
});

Please note the catch block and removed return statements.请注意catch块和删除的return语句。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM