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