如何处理单个页面上的多个异步错误?

Posted

技术标签:

【中文标题】如何处理单个页面上的多个异步错误?【英文标题】:How to handle multiple asynchronous errors on a single page? 【发布时间】:2010-12-26 10:42:10 【问题描述】:

这不一定是 Flex 特定的问题,但我将在示例中使用 Flex:

场景:我们有一个相当复杂的 MVC Flex 应用程序,它使用远程处理并在单个页面上进行多个异步调用。一些调用是:

GetUserOrders 获取当前订单 获取用户详细信息

如果存在网络或数据库错误,这将向用户抛出三个单独的错误消息,并且需要单击三个“确定”。我们正在考虑将所有错误消息收集到一个单例数组中,并在一个常见的错误消息框中显示为一个列表。

关于优雅地处理单个页面上的多个异步错误的最佳做法是什么 - 特别是当我们需要提醒用户存在错误时?

【问题讨论】:

【参考方案1】:

对于网络或数据库错误,您可能会考虑编写一些代码来捕获这些错误并仅显示状态消息而不是一系列警报。

从用户的角度来看,如果网络或数据库遇到错误,他们会想知道何时可以再次开始点击。如果您希望这些错误仅在极少数情况下发生,则警报似乎没问题。但是,如果网络或数据库可能会关闭一段时间,因此他们会收到很多这样的消息,我会在某处放置一条状态消息,状态消息说网络或数据库已关闭,直到它是能够成功完成请求。我想您可以继续允许用户单击,甚至每隔几秒钟就 ping 您的服务器,直到请求生效。完成后,您可以清除状态消息,一切都会正常进行。希望这是有道理的。

javascript 代码 sn-p:

if (response.error) 
    if (response.error === 'some type') 
        showStatusMessage('Network/DB down');
        startPollingNetworkDBStatus();
     else 
        // Additional error handling...
    

【讨论】:

以上是关于如何处理单个页面上的多个异步错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 Android Java 上的异步?

Node js - 如何处理多个异步任务

我们如何处理具有单个实体类的多个存储过程

Asyncio:如何处理多个打开的文件操作系统错误

如何处理单个活动的多个片段

如何处理完成闭包中的多个错误