【发布时间】:2018-02-15 19:11:55
【问题描述】:
我有一个简单的 doRegisterUser() 函数,它基本上使用提供程序中定义的函数来检查用户名是否已经注册。在下面的代码中,我打印到控制台,调用提供程序的函数,然后打印到控制台。只是我这样做只是为了观察执行顺序。我想要的是让 checkUsernameReserved() 执行,然后发生任何控制台打印。
如何做到这一点?
doRegisterUser() {
var self = this;
/*Step A - Check username provided by user is taken or not. If no username taken, create random username*/
console.log("Before checkUsernameReserved() execution");
self.firebaseProvider.checkUsernameReserved(self.username);
console.log("After checkUsernameReserved() execution");
}
这是使用 firebase 的提供程序函数:
checkUsernameReserved(username:string): any{
/*Check usernamesTaken table for provided username*/
firebase.database().ref('/usernames_taken/' + username).once('value').then(function(snapshot) {
/*Check if username is taken.*/
if(snapshot.val() != null && snapshot.val() != "")
{
console.log("Username Taken");
}else{
console.log("Username Available");
}
})
}
我在控制台中得到的当前输出是:
- checkUsernameReserved() 执行前
- checkUsernameReserved() 执行后
- 使用的用户名
【问题讨论】:
标签: javascript firebase ionic-framework firebase-realtime-database ionic3