javascript函数未返回正确的值
javascript function not returning correct value
我有一个检查英国邮政编码的函数。问题是它从不返回true
或false
——只返回undefined
。
function PostcodeAnywhere_Interactive_FindByPostcode_v1_00(Key, Postcode, UserName) {
var retval;
$.getJSON("https://services.postcodeanywhere.co.uk/PostcodeAnywhere/Interactive/FindByPostcode/v1.00/json3.ws?",
{
Key: Key,
Postcode: Postcode,
UserName: UserName
},
function (response) {
// Test for an error
if (response.Items.length == 1 && typeof(response.Items[0].Error) != "undefined") {
// Show the error message
retval = false;
} else {
// Check if there were any items found
if (response.Items.length == 0){
retval = false;
} else {
retval = true;
}
}
});
return retval;
}
对我来说,它看起来应该总是返回true
或false
,所以我不明白哪里出了问题。有人能帮忙吗?是不是getJSON函数需要时间来执行?
它返回undefined,因为$.getJSON
异步运行,因此在执行$.getJSON
的成功函数之前返回retval。如果需要使用retval
,则必须在回调中调用使用它的函数
$.getJSON("https://services.postcodeanywhere.co.uk/PostcodeAnywhere/Interactive/FindByPostcode/v1.00/json3.ws?",
{
Key: Key,
Postcode: Postcode,
UserName: UserName
},
function (response) {
// Test for an error
if (response.Items.length == 1 && typeof(response.Items[0].Error) != "undefined") {
// Show the error message
retval = false;
} else {
// Check if there were any items found
if (response.Items.length == 0){
retval = false;
} else {
retval = true;
}
//use retval
do_something_with_retval(retval);
}
});
相关文章:
- 使用返回函数sinde.attr()jquery元素
- 从自执行函数返回函数的Javascript性能命中率
- Node Express Handlebars帮助程序未返回函数的结果
- 未在Firefox中执行PageMethod的返回函数
- 对返回函数的函数感到困惑
- 从承诺返回不返回函数会导致警告
- 从函数返回函数而不调用返回的函数
- Javascript,闭包中的返回函数如何与外部函数连接
- 为什么Coderbyte.com's的Javascript模板喜欢返回函数的原始参数
- 对象函数返回函数而不是值
- 从外部函数(数组)了解返回函数(x)
- 从Javascript类对象返回函数
- 调用Typescript setter don't返回函数,尽管关联的getter可以工作
- 使用依赖注入在 JavaScript 中返回函数
- 通过单击JSP和javascript加载两个返回函数
- 需要说明:无法理解返回函数的javascript
- 简单的onClick返回函数不起作用
- 为什么这个闭包返回函数
- JS函数返回函数供以后使用-未定义参数
- Coffeescription类中的方法返回函数而不是字符串