等待jQuery $ .get函数完成,然后再运行代码
在下面,该return
语句在调用完成 被执行$.get()
。我该如何更改?
var aft = {};aft.getToken = function (url) {
var theToken;
//Get the token value
$.get(url, function (data) {
theToken = $(data).find('input[name=__RequestVerificationToken]').val();
}, "html");
return theToken;
};
回答:
您不能-至少不明智。虽然async
可以在jQuery ajax请求上设置一个属性,但过去在尝试将其与值一起使用时遇到了
false
。
尝试重新考虑您要完成的工作:
var aft = { yourToken: '' };aft.setToken = function (url, callback) {
$.get(url, function (data) {
this.yourToken = $(data).find('input[name=__RequestVerificationToken]').val();
if (callback)
callback.apply(this);
}, "html");
};
然后:
aft.setToken("url.php", function() { alert("Token retrieved = " + this.yourToken);
});
或者,如果您的回调 仅 需要访问返回的数据,那么您可以更简单地执行
if (callback) callback(data);
然后
aft.setToken("url.php", function(dataReturned) { alert("Ajax data retrieved = " + dataReturned);
});
以上是 等待jQuery $ .get函数完成,然后再运行代码 的全部内容, 来源链接: utcz.com/qa/428220.html