获取函数中的请求和返回值

时间:2016-05-22 03:55:47

标签: javascript function get

由于某种原因,“p”返回未定义。我如何让它返回数组?

function doT() {
    var pe;
    $.get("https://www.google.com", function(data) { 
    pe = ["a", "b", "c"]; 
    });
    return pe;
}

var p = doT();
setTimeout(function() { console.log(p.length); }, 1200);

2 个答案:

答案 0 :(得分:2)

其中一种方法是使用promise(阅读相关内容):

现在由于CORS(阅读它),它会进入拒绝区块:

var promise = new Promise(function(resolve, reject) {
  var pe;
  $.ajax("https://www.google.com")
    .done(function() {
      pe = ["a", "b", "c"];
      resolve(pe);
    })
    .fail(function() {
      reject("error");
    });
});
promise.then(function(result) {
  $("#testing").text(result);
}, function(err) {
  $("#testing").text(err);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="testing"></div>

只需进行有效的ajax调用即可。评论是否需要进一步解释。

答案 1 :(得分:0)

function doT() {

  var pe = $.get("https://www.google.com", function(data) { 
    pe = ["a", "b", "c"]; 
  });

 return pe;
}

alert(doT());