js 函数调用返回值?

问题如下


<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,求原因?


守着一只汪
浏览 755回答 3
3回答

慕沐林林

js是异步执行的。需要转化为同步。

红糖糍粑

$scope.checkRole = function (roleName) {var a = checkName(roleName);if(a) {&nbsp; &nbsp;///&nbsp;}}

慕丝7291255

checkName方法中有异步, 所以当你调用的时候它还没有返回给你 你要的$http后接受到的数据, 在方法里面没有别的return 所以异步还没有return时 则方法默认为返回undefined.&nbsp;你想要这种功能的话 推荐你用async await
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript