我尝试创建一个角度为5的上传按钮,我在我的.ts文件中使用此代码:
handleFiles(e) {
this.file = e.srcElement.files[0];
if (this.file.size > 2097152) {
let snackBarRef = this.snackBar.open('Images must be 2 MB or less', 'OK!', {
duration: 3000
});
} else {
this.uploadImage();
}
}
uploadImage() {
let storageRef = firebase.storage().ref();
let path = Date.now().toString() + '-' + this.file.name;
let iRef = storageRef.child('posts/' + path);
let me = this;
iRef.put(this.file).then((snapshot) => {
let snackBarRef = this.snackBar.open('Image uploaded', 'OK!', {
duration: 3000
});
this.storageRef.child('posts/' + path).getDownloadURL().then(function(url) {
me.imageUrl = url;
me.newThumbnail = url;
});
});
}
我的控制台出现此错误:错误:未捕获(在承诺中):[object Object] 。
有关此问题的任何想法吗?因为调试时我什么都找不到。
答案 0 :(得分:2)
首先,你必须处理承诺中的错误。
iRef.put(this.file).then((snapshot) => {
let snackBarRef = this.snackBar.open('Image uploaded', 'OK!', {
duration: 3000
});
this.storageRef.child('posts/' + path).getDownloadURL().then(function(url) {
me.imageUrl = url;
me.newThumbnail = url;
})
.catch( error => { console.error(error) })
})
.catch( error => {
console.error(error);
})
所以你将能够看到发生了什么,以及在哪里。