将If与javascript中的函数一起使用

将If与javascript中的函数一起使用,javascript,Javascript,如何获取函数的返回状态(结果、状态),以便在函数外部使用?我想这是一个函数被用作另一个函数的参数的情况。我需要获取参数函数的返回值作为geocoder.geocode()的返回值 此变量检查将为false或1,具体取决于条件。这应该有效。使函数成为对象属性 geocoder.geocode({ “地址”:地址 }, getStatus:函数(结果、状态){ if(status==google.maps.GeocoderStatus.OK){ 返回1; }否则{ //警报(“很遗憾,我们无法理解

如何获取函数的返回状态(结果、状态),以便在函数外部使用?我想这是一个函数被用作另一个函数的参数的情况。我需要获取参数函数的返回值作为geocoder.geocode()的返回值


此变量检查将为false或1,具体取决于条件。

这应该有效。使函数成为对象属性

geocoder.geocode({
“地址”:地址
},
getStatus:函数(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
返回1;
}否则{
//警报(“很遗憾,我们无法理解您的请求,因此无法找到您最近的分支机构。”);
返回false;
}
});

log(geocoder.getStatus(results,status))使用回调,确保它在函数体的作用域中可见

var check= function (results, status)
或:


根据您的计划,可能会有一个更聪明的解决方案,但这应该可以做到:

function (results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        funcForResult(1);
        return 1;
    } else {
        //alert("Unfortunately we couldn't understand your request and therefore cannot find your nearest branch.");
        funcForResult(false);
        return false;
    }
});

事实上,这个问题的每个答案都是错误的-你不能
从异步函数调用中返回一个值-是否有一种方法可以让我知道状态并在函数外部检查?你必须使用回调。我在上面提到的问题的公认答案中描述了这种方法。
var myCallback = function(result) {
  // handle the result here
};

geocoder.geocode({
    'address': address
},

function (results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        myCallback(1);
        return 1;
    } else {
        //alert("Unfortunately we couldn't understand your request and therefore cannot find your nearest branch.");
        myCallback(false);
        return false;
    }
});
    geocoder.geocode({
            'address': address
        },

        var myFunctReturn :function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                return 1;
            } else {
                //alert("Unfortunately we couldn't understand your request and therefore cannot find your nearest branch.");
                return false;
            }
        });

console.log(geocoder.myFunctReturn );
function (results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        // do actions on success
        return 1;
    } else {
        //alert("Unfortunately we couldn't understand your request and therefore cannot find your nearest branch.");
        // do actions on failuer
        return false;
    }
});
function (results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        funcForResult(1);
        return 1;
    } else {
        //alert("Unfortunately we couldn't understand your request and therefore cannot find your nearest branch.");
        funcForResult(false);
        return false;
    }
});
var requestResult;

function callback(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        requestResult = 1;
        return 1;
    } else {
        requestResult = false;
        return false;
    }

}

geocoder.geocode({'address': address}, callback);