Javascript 如何使用YAHOO.util.Connect.asyncRequest并返回结果?
我正在使用YAHOO.util.Connect.asyncRequest从数据库获取数据,下面是代码:Javascript 如何使用YAHOO.util.Connect.asyncRequest并返回结果?,javascript,yui,yui-datatable,Javascript,Yui,Yui Datatable,我正在使用YAHOO.util.Connect.asyncRequest从数据库获取数据,下面是代码: function getCountArticle(contentCurValue) { var handleSuccess = function (res) { var countPubmed = YAHOO.lang.JSON.parse(res.responseText); var contentCountPubmed = countPubmed.totalA
function getCountArticle(contentCurValue) {
var handleSuccess = function (res) {
var countPubmed = YAHOO.lang.JSON.parse(res.responseText);
var contentCountPubmed = countPubmed.totalArticleRecords;
alert(contentCountPubmed); //return 15 for example
};
var handleFailure = function () {
alert("Error connecting data : Bad pubmed query");
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
timeout: 5000
};
var sURL = 'qct-list-article.html?term=' + contentCurValue + '&retstart=0' + '&retmax=1';
var request = YAHOO.util.Connect.asyncRequest('GET',sURL,callback);
}
我希望此函数返回:“contentCurValue”(例如:15),但当我尝试使用此代码时,会得到“undefined”:
我的错误可能是由于异步查询造成的,但是如何强制“var test=getCountArticle();”等待结果呢?由于调用本质上是异步的,而不是尝试等待响应,因此最好指定一个回调函数来使用数据执行。您可以这样修改您的方法:
function getCountArticle(contentCurValue, callback) {
var handleSuccess = function (res) {
var countPubmed = YAHOO.lang.JSON.parse(res.responseText);
var contentCountPubmed = countPubmed.totalArticleRecords;
callback(contentCountPubmed); //return 15 for example
};
// ...
}
那么您的呼叫代码是:
getCountArticle("contentCurValue", function(test) {
alert(test);
});
getCountArticle(“contentCurveValue”,函数(测试){
警报(测试);
}); 代码>
任何使用AJAX查询返回的值的进一步执行都将在回调方法内部进行
这篇文章本质上是同一个问题,但不是针对YUI的:
getCountArticle("contentCurValue", function(test) {
alert(test);
});