鍍金池/ 問答/HTML5  HTML/ js 函數(shù)調(diào)用返回值?

js 函數(shù)調(diào)用返回值?

問題如下

<input type="text" ng-model="roleName" bg-blur="checkRole(roleName)">
var isCheck = false;
function checkName(roleName) {
    $http({
        url: 'http://...',
        type: 'post'        
    }).then(function(res){
        isCheck = res.data[0] == 0 ? true : false;
    }, function(err){
        //
    }).then(
        return isCheck;
    );    
}

$scope.checkRole = function (roleName) {
    if(checkName(roleName)) {
       /// 
    }
}

為什么這里 if(checkName(roleName))條件里面判斷是 undefined,求原因?

回答
編輯回答
風(fēng)畔

$scope.checkRole = function (roleName) {

var a = checkName(roleName);
if(a) {
   /// 
}

}

2017年10月24日 19:08
編輯回答
陌璃

checkName方法中有異步, 所以當(dāng)你調(diào)用的時(shí)候它還沒有返回給你 你要的$http后接受到的數(shù)據(jù), 在方法里面沒有別的return 所以異步還沒有return時(shí) 則方法默認(rèn)為返回undefined.
你想要這種功能的話 推薦你用async await

2018年3月24日 23:03
編輯回答
懶豬

js是異步執(zhí)行的。
需要轉(zhuǎn)化為同步。

2018年6月30日 20:59