我有一个if
语句来测试函数调用返回的值。即使值为true
,它也总是执行else
分支。
我的代码:
var debug = {
enable: true,
log: function(msg, tag){
if(this.enable)
console.log((tag?"["+tag+"] ":"") + msg);
}
};
var checkUser = function(urlServer, user){
$.couch.urlPrefix = urlServer;
$.couch.login({
name: user.name,
password: user.password,
success: function(data){
debug.log("l'utente " + user.name + "è già registrato sul server", "checkUser");
$.couch.logout({
success: function(data){
debug.log("logout utente: OK", "checkUser");
debug.log(data);
},
error: function(data){
debug.log("logout utente: FAIL", "checkUser");
debug.log(data);
}
});
return true
},
error: function(err){
debug.log("l'utente " + user.name + " NON è registrato sul server", "checkUser");
return false;
},
async: false
});
};
// ... code ...
$("input").on("click", function(){
if( checkUser(urlCouchDbServer, user) ){
console.log("dopo il controllo l'utente risulta registrato");
}else{
console.log("dopo il controllo l'utente NON risulta registrato");
sigupUser(urlCouchDbServer, user);
}
});
为什么这个最新if
的不能正常工作?谢谢!