Parse platform 解析查询不';出现连接问题时,请不要继续

Parse platform 解析查询不';出现连接问题时,请不要继续,parse-platform,unity3d,Parse Platform,Unity3d,当我们调用ParseCloud.CallFunctionSync或ParseObject.GetQuery(…).FindAsync()函数,并且在调用过程中internet连接失败时,该函数不会给出任何错误、超时或抛出异常。它只是无限期地坐在那里,永远不会继续进入回调函数。下面是一个例子。我们需要一种方法来捕捉该场景,以便能够向用户显示正确的消息 是否有人对从解析中获取错误的最佳方法以及在调用过程中连接失败时如何捕获错误提出了建议 谢谢 try { var query = Pa

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

是否有人对从解析中获取错误的最佳方法以及在调用过程中连接失败时如何捕获错误提出了建议

谢谢

try { var query = ParseObject.GetQuery(...); query.FindAsync().ContinueWith(t => { try { if (t.IsFaulted || t.IsCanceled) { Debug.Log("Error Exception: " + t.Exception); foreach(var e in t.Exception.InnerExceptions) { ParseException parseException = (ParseException) e; Debug.Log("Error message: " + parseException.Message); Debug.Log("Error code: " + parseException.Code); } else { //handle normal situation .... } } catch(Exception e) { Debug.Log(e.ToString()); } }); } catch(Exception e2) { Debug.Log(e2.ToString()); } 尝试 { var query=ParseObject.GetQuery(…); query.FindAsync().ContinueWith(t=>{ 试一试{ 如果(t.IsFaulted | | t.IsCanceled) { Log(“错误异常:+t.Exception”); foreach(t.Exception.InnerExceptions中的变量e){ ParseException ParseException=(ParseException)e; Log(“错误消息:”+parseException.message); Log(“错误代码:”+parseException.code); } 否则{ //处理正常情况 .... } } 捕获(例外e) { Log(例如ToString()); } }); } 捕获(异常e2) { Log(e2.ToString()); }
在这里,您可以处理许多错误

我认为如果没有internet连接,可以使用kPFErrorConnectionFailed停止查询

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

下面是一个链接,其中包含来自parse的所有错误代码

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

                        }


                }     

        }