我正在使用Firebase存储来使用Angularfire2库(目前是v5.0.0-rc.5-next),这意味着我现在正在使用observable而不是promises。
如何捕捉storage/object-not-found
等错误并做出相应反应?
这是我目前的代码,但我不能像我找到的一些例子那样添加catch
。
const avatarRef = this.afStorage.ref('${userId}/avatar/${this.avatarThumbnail}${user.avatar}');
avatarRef.getDownloadURL()
.take(1)
.subscribe((avatarUrl) => {
resolve(avatarUrl);
});
答案 0 :(得分:1)
最基本的是,观察者采用错误回调来接收可观察流中的任何未处理错误。 getDownloadURL()
返回Observable,这就是您需要订阅的原因。如果出现错误(找不到文件或其他文件),则只会从错误回调中调用代码。
avatarRef.getDownloadURL()
.take(1)
.subscribe((avatarUrl) => {
// Do something with avatarUrl here
console.log(avatarUrl);
}, (error) => {
// Handle error here
// Show popup with errors or just console.error
console.error(error);
});
另外,我建议您阅读有关使用RxJS进行错误处理的文章以及Observable和Promise之间的区别:link1,link2
答案 1 :(得分:0)