从异步调用返回值

时间:2017-02-24 10:57:46

标签: asynchronous call

我知道这已被多次询问。我有一个Javascript函数需要从异步调用中返回结果。

function IsValid(callback){
$.ajax({
url:...
success:(function(data){
callback(data);
});
};

IsValid(function(data){
//process returned data
};

我也可以用诺言来做类似的工作。但是,我需要的是IsValid函数必须返回一个bool值,而不是直接处理结果。我需要

if (IsValid()) 
//process

因为将在不同的函数中调用IsValid函数,并且每个调用函数的进程都不同。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

使用承诺。 jQuery为AJAX调用返回一个延迟对象,其作用类似于Promise:

function IsValid() {
  return $.ajax({
    url:...
  });
}

IsValid().then(function(data) {
  // process returned data
});