在离子型的'PromiseLike <void>'类型上不存在属性'catch'

时间:2019-08-29 17:45:10

标签: javascript firebase firebase-realtime-database try-catch

嗨,我尝试使用以下方法

sendrequest(req: connreq) {
var promise = new Promise((resolve, reject) => {
  this.firereq.child(req.recipient).push({
  sender: req.sender
  }).then(() => {
    resolve({ success: true });
    }).catch((error) => {
      resolve(error);
})
})
return promise;  
}

但是我的Visual Studio代码给我以下错误

Property 'catch' does not exist on type 'PromiseLike<void>'

我正在使用Ionic来编译此程序,并且不确定如何更正此方法。我的教程使用的是ionic 3,因此它可能比较旧,我不确定如何更改它以适应新版本。

1 个答案:

答案 0 :(得分:0)

避免使用Promise constructor antipattern!要将某物从类似诺言的东西转换成真实的诺言,只需使用Promise.resolve

sendrequest(req: connreq) {
  return Promise.resolve(this.firereq.child(req.recipient).push({
    sender: req.sender
  }));
}