检查推送是否成功 - angularfire2
问题描述:
目前我开发了一个与Firebase数据库通信的Ionic2应用程序。在更新节点时,它有时会起作用,有时却不起作用。 所以我累了用下面的代码处理错误:检查推送是否成功 - angularfire2
this.db.list("/Events/" + this.eventID+ "/teilnehmer").push(this.userID)
.then(resolve => {
console.log('success');
}, reject => {
console.log('error');
})
.catch(reject => {
console.log('catch');
});
但是,即使我断开我的Internet连接没有抛出错误。 是否有人知道我如何处理错误,如果推不成功?
答
我有同样的情况推动没有返回承诺的某个时候,所以我提出github FirebaseListObservable push() takes too long to add问题,但不幸的是它没有解决,我通过电子邮件联系firebase支持,支持团队审查我的问题,并检查我发送的代码,回答说没有什么代码来执行,并劝我清楚手机的存储缓存,我做了同样的问题得到了解决,
这里是火力支援
邮件XXXX,您好!
我建议你尝试又向前 之前清除手机缓存,它的内存可能太高。为此,请转到:设置 - > 存储 - >缓存数据。选择它然后选择确定(用于清除缓存中的 )。也请查看Github上提出的相同问题 并由我们的工程师回答。
如果想提出的建议后问题仍然存在,请 回到我用最小的和可运行的代码,我们可以用它来 模拟这个,可能是从 从头码plunkr或的jsfiddle代码,或者是可以证明这个问题。
问候,XXXX
答
如果你想解决这个你可以考虑设置超时,因为承诺会仅仅停留在“待定”如果火力地堡不返回任何东西和解决,拒绝/捕获会永远不会被触发。
您可以用Promise.race()例如这样做:Example Promise timeout with Promise.race()还要检查这个线程:More Examples