当我在Javascript中返回true时,它返回undefined

时间:2014-07-06 00:43:39

标签: javascript boolean return

我从另一个调用javascript函数如下所示,但每次调用isPassword时,它都会返回'undefined'而不是预期的True或False。我在返回之前打印它们并且它们是正确的,但是返回true;不起作用。有什么想法吗?

function isPassword(pass){

var datatosend = {};
datatosend['api'] = 'checkpassword';
datatosend['version'] = 'v1';
datatosend['pass'] = pass;

jsonAPI(datatosend,function()
{
    if (typeof(responseVar['success'])=='boolean')
    {
        var ans = responseVar['success'];
        if (ans)
        {
            //Returns true to changePassword();
            return true;
        }
        else if (!ans)
        {
            //Returns false to changePassword();
            return false;
        }
    }
});
}

function changePassword(){

    //THE BELOW isPassword CALL IS UNDEFINED
    if(isPassword(oldPass)){
        successStatus.text("Current password not entered correctly");
        successStatus.css('color', 'red');
        clearTextAfter('changePasswordStatus', 5000);
        return false
    }
}

如果它更像是一个简单的问题,我可以根据请求提供更多代码。

1 个答案:

答案 0 :(得分:2)

不完全确定jsonAPI是什么,但如果它是一个Ajax调用,那就是异步,所以函数本身在该函数调用之后结束(并且没有返回值),而作为参数传递给jsonAPI的匿名函数将稍后执行。此时您需要对响应做任何需要,而不是在isPassword返回时。