首页 > 解决方案 > “PromiseLike”类型不存在属性“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;  
}

但是我的视觉工作室代码给了我以下错误

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

我正在使用 ionic 来编译这个程序,我不确定如何更正这个方法。我的教程在 ionic 3 中,所以它可能很旧,我不确定如何更改它以适应新版本。

标签: javascriptfirebasefirebase-realtime-databasetry-catch

解决方案


避免Promise构造函数反模式!要将某些东西从类似承诺的东西转换为真正的承诺,只需使用Promise.resolve

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

推荐阅读