gpt4 book ai didi

angular - 如何从与 Angular 4 集成的 odooRPC 响应中捕获错误代码

转载 作者:太空狗 更新时间:2023-10-29 17:51:27 24 4
gpt4 key购买 nike

我的 Angular 项目与 odooRPC API 集成,在我从 odooRPC 收到的 JSON 响应中,如下所示:

 error:{message: "Odoo Session Expired", code: 100, data: {,…}}
code:100
data:{,…}
arguments:["Session expired"]
debug : "Traceback (most recent call last):↵ raise http.SessionExpiredException("Session expired")↵SessionExpiredException: Session expired↵"
exception_type:"internal_error"
message :"Session expired"
name : "odoo.http.SessionExpiredException"
message : "Odoo Session Expired"
id :null
jsonrpc :"2.0"

这是发生异常或错误时来自 chrome 中网络选项卡的 OddoRPC 调用函数的响应,但我担心的是当我捕获此错误时我无法获得整个响应。我得到的只是调试参数中的错误。有什么方法可以获取'代码'或'消息'值

我们将不胜感激。

我用来在 angular 中调用 odoodRPC 函数的代码:

   return this.odooRPC.call('connect', 'getList',[],{}).catch((e: any) => {
console.log(e);
});

这里的 getList 是我从 Odoo 服务器调用的函数,当我在 catch block 中控制它时,我得到的只是来自“调试”参数的错误消息。

最佳答案

看起来您正在使用 Odoo jsonrpc 库之一来处理 Angular ,例如这个 https://github.com/agenterp/angular5-odoo-jsonrpc .此库的函数 call 在向您发送错误之前处理响应。请参阅下面图书馆的 odoorpc.service.ts

的摘录
    errorObj.title = error.message;
errorObj.message = error.data.debug.replace(/\n/g, "<br />");
...
return Promise.reject(errorObj);

您可以根据您的用例调整库,或者直接使用 Angular 的 HttpClient 调用 odoo API。

关于angular - 如何从与 Angular 4 集成的 odooRPC 响应中捕获错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48739679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com