错误:未捕获(在承诺中):[object Object] .Angular 5

时间:2018-06-07 13:47:39

标签: angular typescript

我尝试创建一个角度为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]

有关此问题的任何想法吗?因为调试时我什么都找不到。

1 个答案:

答案 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);
})

所以你将能够看到发生了什么,以及在哪里。