【发布时间】: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