我不确定这个问题是否太具体。我在更新数据库的函数中使用firebase:
UpdatePeerNotification = (content) => {
firebase.database().ref('users').child(this.props.match.params.username).
.update('something)
}
如果我通常将其称为this.updatePeerNotification('abc');它正在工作
但是当尝试使用
Promise(this.updatePeerNotification('abc')).then(() => do something))
要么
this.updatePeerNotification('abc').then(() => do something))
它会引发以下错误:
未处理的拒绝(TypeError):未定义不是承诺
正常调用该函数但附加.then会出错。另外,刷新页面后,该函数被调用而没有错误
在此先多谢!
最佳答案
您没有从UpdatePeerNotification
返回承诺(或其他任何东西),这会导致调用方尝试在then
上调用undefined
(函数的默认返回值不返回任何值)。
您可能正在寻找返回update()
的结果,这是一个承诺,可以在服务器上完成更新时解决:
UpdatePeerNotification = (content) => {
return firebase.database().ref('users').child(this.props.match.params.username).
.update('something)
}