【发布时间】:2014-08-26 12:59:33
【问题描述】:
标题可能有点奇怪,但我会尽力解释。
我调用 API 来验证一些数据。为此,我使用以下功能:
function validateAddress(address) {
var validationURL = "/api/validateAddress/"+address;
$.getJSON(validationURL, function(data, textStatus, jqXHR){
if (textStatus === "success") {
return data.isValid
}
}));
}
// And then in other parts of the code I want to do something like:
if (validateAddress(address)) {
// do something awesome right here..
}
问题当然在于它是一个异步调用,这会导致 validateAddress() 不返回任何内容,因为它在 API 调用返回任何结果之前就结束了。
那么我怎样才能真正让 validateAddress() 返回 api 调用的结果呢?欢迎所有提示!
【问题讨论】:
-
你不能把它称为“成功”吗?
-
您正在寻找的概念是 callback-function,最近 promise 也越来越常见于这个问题。 $.getJSON 返回一个承诺,但也可以与回调一起使用。
标签: javascript jquery ajax asynchronous