我需要检查数据库中是否存在用户,如果是,则返回true . 我有一个功能(我顺便使用firebase):
checkIfUserExists(login: string): boolean {
this.af.database.list('/users', {
query: {
orderByChild: 'login',
equalTo: login
}
}).subscribe(response => {
if(response.length === 0 ) return true
})
return false
}
问题是该函数总是返回false . 它不等待检查订阅 . 有没有办法解决它?
3 回答
您可以返回一个承诺,然后调用
find()
:你可以返回observable本身:
在这种情况下,您可以像这样使用它:
这是因为您的处理是异步的,因此您需要使用回调处理处理 . 这样,您将确保在执行异步处理时执行处理 .
您可以使用observables(rxjs - 就像我的样本一样)或承诺用于此类用例 .
您可以使用Native Promise API返回承诺:
然后用它,