属性'catch'在类型"承诺"上<void>不存在



我在以下代码中遇到此错误。我正在使用离子3:

属性'catch'不存在类型'Promiselike

这是我关注的教程的链接。

此错误在VS代码中显示。

这可能是我不知道

的一些更新的语法
 storetoken(t) {
  this.afd.list(this.firestore).push({
  uid: firebase.auth().currentUser.uid,
  devtoken: t
}).then(() => {
  alert('Token stored');
  })
  .catch(() => {
    alert('Token not stored');
  })
this.afd.list(this.firemsg).push({
  sendername: 'vivek',
  message: 'hello'
}).then(() => {
  alert('Message stored');
  })
  .catch(() => {
    alert('Message not stored');
 })  
}

**这是将令牌发送到firebase数据库的home.ts文件的整个代码:也请参考此信息,因为我也会遇到另一个错误:错误:undfrach(in Promise(:error:staticinjectorerror [当我删除捕获块时,AngularFiredatabase]。**

 import { Component } from '@angular/core';
 import { NavController } from 'ionic-angular';
 import { AngularFireDatabase } from 'angularfire2/database';
 import firebase from 'firebase';
  import { HttpClientModule } from '@angular/common/http';
  import { HttpModule } from '@angular/http';
 declare var FCMPlugin;
 @Component({
   selector: 'page-home',
   templateUrl: 'home.html'
  })
 export class HomePage {
  firestore = firebase.database().ref('/pushtokens');
  firemsg = firebase.database().ref('/messages');
  constructor(public navCtrl: NavController, public afd: 
  AngularFireDatabase) {
  this.tokensetup().then((token) => {
  this.storetoken(token);
  })
  }
 ionViewDidLoad() {
 FCMPlugin.onNotification(function(data){
 if(data.wasTapped){
  //Notification was received on device tray and tapped by the user.
  alert( JSON.stringify(data) );
  }else{
  //Notification was received in foreground. Maybe the user needs to be 
   notified.
   alert( JSON.stringify(data) );
   }
  });
  FCMPlugin.onTokenRefresh(function(token){
  alert( token );
  });    
  }
  tokensetup() {
  var promise = new Promise((resolve, reject) => {
  FCMPlugin.getToken(function(token){
  resolve(token);
  }, (err) => {
    reject(err);
  });
  })
  return promise;
  }
  storetoken(t) {
  this.afd.list(this.firestore).push({
  uid: firebase.auth().currentUser.uid,
  devtoken: t
   }).then(() => {
   alert('Token stored');
   }).catch(() => {
    alert('Token not stored');
   })
  this.afd.list(this.firemsg).push({
  sendername: 'vivek',
  message: 'hello'
  }).then(() => {
  alert('Message stored');
  }).catch(() => {
    alert('Message not stored');
  })  
  }
  }

push返回 ThenableReference而不是 Promise

结合承诺和参考;写入完成时解析,但可以立即用作对孩子位置的引用。

这意味着您可以将其用作对书面数据的未来参考。

另请参见代码库中。然后在此处进行。

 export interface ThenableReference extends Reference, PromiseLike<Reference> {}

或者您可以执行推荐的方式,即: 您目前无法使用捕获。

 this.afd.list(this.firestore).push({ uid: firebase.auth().currentUser.uid, devtoken: t });

注意:如果您想遵循它,这里有一个开放的问题。

相关内容

  • 没有找到相关文章

最新更新