【问题标题】:How best to "return an error" from a Worklight procedure?如何最好地从 Worklight 过程中“返回错误”?
【发布时间】:2013-12-04 11:25:57
【问题描述】:

我用几个简单的程序编写了一个适配器。在某些情况下,我需要向呼叫者发出出现问题的信号。我尝试了几种方法..

  • 抛出异常:异常文本通过 onFailure 回调返回给调用者(很棒),但包含在异常的模块名称和行号中。 TMI。

  • 返回 isSuccessful = false 的对象:这就像一个魅力,它通过 onFailure 回调传递给调用者。

例如:

return {
    isSuccessful: false,
    errors: ["No servers available"]
};

This article from IBM 但是明确警告不要这样做,虽然没有描述替代方案 - 你可以吗?

【问题讨论】:

  • 为了它的价值,我会做以下事情。服务器:return {error: "No servers available"},客户端:if (response.error) { /*handle error*/ } else { /* handle success*/ }。这个想法是创建一个自定义错误对象(如您的示例中)并在成功案例之前检查失败案例(该自定义错误对象存在)。使用您想要的任何键,而不是 Worklight 使用的键(即 isSuccessful),因为在以后的版本中行为可能会发生变化。
  • 除了to the blog post you've found,我还要看看最近发表的另一篇题为Handling Backend Responses in Adapters的博文。通过第二篇博文,您应该更好地了解如何在 Worklight Adapters 中最好地“返回错误”。

标签: ibm-mobilefirst worklight-adapters


【解决方案1】:

您看过这篇博文吗?
https://www.ibm.com/developerworks/community/blogs/worklight/entry/handling_backend_responses_in_adapters?lang=en

博文详情:

对于invokeProcedure(客户端到适配器):

  • 调用响应是什么样的?
  • isSuccessful 什么时候会成真?
  • isSuccessful 什么时候会是假的?

对于invokeHttp(适配器到服务器):

  • 后端调用响应是什么样的?
  • isSuccessful 什么时候会成真?
  • isSuccessful 什么时候会是假的?

根据您将在响应客户端中提供的条件,您可以更清楚地返回错误。

【讨论】:

    猜你喜欢
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    相关资源
    最近更新 更多