gpt4 book ai didi

javascript - 如何使用YAHOO.util.Connect.asyncRequest并返回结果?

转载 作者:搜寻专家 更新时间:2023-11-01 05:08:19 42 4
gpt4 key购买 nike

我正在使用 YAHOO.util.Connect.asyncRequest 从数据库中获取数据,代码如下:

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();
alert(test); // return undefined, should return 15

我的错误可能是由于异步查询引起的,但是我怎样才能强制“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);
});

任何使用 AJAX 查询返回值的进一步执行都将在回调方法内进行。

这个 SO 帖子本质上是相同的问题,但不是 YUI 特定的:Getting undefined in javascript when calling ajax

关于javascript - 如何使用YAHOO.util.Connect.asyncRequest并返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3159368/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com