我有以下功能:
isUserUsed: function(username) {
var result = true;
User.getUserByUsername(username, function(err, user){
if(err) throw err;
if(user){
result = false;
}
});
return result;
},
被调用函数User.getUserByUsername()
应该更改result
的值。但是,主函数isUserUsed
在User.getUserByUsername()
完成之前返回。在继续操作之前,如何控制代码流以等待User.getUserByUsername()
完成?
谢谢!
答案 0 :(得分:0)
也许承诺是您的选择,点击链接[promise]了解详细信息; 在使用承诺之后,您的代码会:
isUserUsed: function(username) {
return new Promise((resolve, reject) => {
var result = true;
User.getUserByUsername(username, function(err, user){
if(err) reject(err);
if(user){
resolve(false);
}
});
});
},