如何使用服务器端方法处理连接超时?我大部分时间都使用meteor用于移动ios / android应用程序(没有webapps,真正的appstore版本),移动用户经常有连接超时。因此,有时他们在选中按钮时没有反馈,因为连接太糟糕了。
e.g。我有一个服务器端 - 仅方法,可以在集合document
中插入一个带有特殊text
的新MyTextCollection
所以我的方法看起来像这样
Meteor.methods({
addTextToMyTextCollection: function(text) {
//some input checks and error stuff here
//if something is wrong It will throw new Error.
...
//everything is fine so insert text into collection
MyTextCollection.insert({text:text});
return someResult
}
});
客户端上的我会打电话给
Meteor.call("addTextToMyTextCollection", myTextILikeToStore, function(error, result){
if (error) {
// I have an error
else {
// I have a result
}
});
我的问题是我不知道如何在这里处理坏的wifi / 4G等连接,以便为用户提供一些反馈等待(比如它的加载请等待或者你的连接再次破坏再试一次)。当我的Error
或我用作参数的permission
出现问题时,方法只返回text
。否则它将result
归还给我。
在方法调用没有返回任何内容之后,是否可以限制客户端上抛出错误的时间?
当我的设备能够调用addTextToMyTextCollection
方法但接收结果/错误时连接中断时会发生什么?我如何为我的UI处理这个?
我不喜欢乐观的UI(服务器/客户端上的方法调用),因为它并不总是预期的结果(例如,只询问客户端不知道的服务器信息)