【问题标题】:Parse query doesn't continue when connection issue occurs发生连接问题时解析查询不会继续
【发布时间】:2015-09-08 19:16:19
【问题描述】:

当我们调用 ParseCloud.CallFunctionAsync 或 ParseObject.GetQuery(...).FindAsync() 函数并且在调用过程中互联网连接失败时,该函数不会给出任何错误或超时或抛出异常。它只是无限期地坐在那里,它永远不会继续进入回调函数。下面是一个例子。我们需要一种方法来捕捉这种情况,以便向用户显示正确的消息。

有没有人建议从解析中获取错误的最佳方法以及在调用期间连接失败时如何捕获它。

谢谢

尝试 { var query = ParseObject.GetQuery(...); query.FindAsync().ContinueWith(t => { 尝试 { if (t.IsFaulted || t.IsCanceled) { Debug.Log("错误异常:" + t.Exception); foreach(var e in t.Exception.InnerExceptions) { ParseException parseException = (ParseException) e; Debug.Log("错误信息:" + parseException.Message); Debug.Log("错误代码:" + parseException.Code); } 别的 { //处理正常情况 …… } } 捕获(异常 e) { Debug.Log(e.ToString()); } }); } 捕获(异常 e2) { Debug.Log(e2.ToString()); }

【问题讨论】:

    标签: parse-platform unity3d


    【解决方案1】:

    在解析中,您可以处理许多错误。

    我认为如果没有互联网连接可以停止查询,您可以使用 kPFErrorConnectionFailed

    例如

    var query = PFQuery()
    query.findObjectsInBackgroundWithBlock{
    (success:Bool!, error:NSError!)-> Void in
                        if (error == nil) {
    
                          //continue query
                        }
                        else{
                            // 100 is the kPFErrorConnectionFailed which is for your scenario 
                            if(error.code == 100) {
                                //handle error
    
                            }
    
    
                    }     
    
            }
    

    需要注意的是,虽然在较新的解析框架中它们现在由代码编号而不是名称处理,但您需要搜索错误代码来处理特定情况。

    这里是解析https://parse.com/docs/osx/api/Constants/PFErrorCode.html中所有错误代码的链接

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2010-09-22
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      相关资源
      最近更新 更多