由于某种原因,“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);
答案 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());