gpt4 book ai didi

javascript - 附加到 getJSON 中的字符串

转载 作者:行者123 更新时间:2023-11-28 13:51:18 25 4
gpt4 key购买 nike

谁能看出这段代码的问题吗?当'out'返回时,它的值为“”。我不知道为什么,也许这是我不知道的 getJSON 函数的一些内容。

我试图将 URL 传递给此函数,让它对 URL 执行 getJSON,并将结果(我也在格式化)添加到文本字符串中。我希望它们全部位于一个文本字符串中,这样我就可以使用正则表达式解析该字符串。感谢任何帮助,谢谢!

function getSearch(url) {
var out = ''; // output variable

$.getJSON(url, function(data) {
for(var i = 0; i < numResults; i++) {
out += '<p class="hash_list">' + '<a href="http://www.twitter.com/' + data.results[i].from_user + '">' + data.results[i].from_user + '</a>: ' + data.results[i].text + '</p>';
}
});

return out;
}

最佳答案

ajax 是异步的,您的代码将在 ajax 请求完成之前返回。有几种方法可以重构您的代码。

您可以传入一个回调函数,该函数会在请求完成后执行。

function getSearch(url, callback) {
$.getJSON(url, function(data) {
var out = '';
// btw what is numResults ??
for(var i = 0; i < numResults; i++) {
out += '<p class="hash_list">' + '<a href="http://www.twitter.com/' + data.results[i].from_user + '">' + data.results[i].from_user + '</a>: ' + data.results[i].text + '</p>';
}
if( typeof callback === 'function' ) callback( out );
});
}

然后你会使用这样的函数。

getSearch('test.php', function(out){ 
// here you can use the out variable
});

或者,您可以使用 jquery deferreds 返回一个 Promise,并在解析 deferred 时将 out 变量作为参数的一部分传递。这是一个例子

function getSearch() 
{
var deferred = $.Deferred();
$.getJSON(url, function(data) {
var out = '';
// btw what is numResults ??
for(var i = 0; i < numResults; i++) {
out += '<p class="hash_list">' + '<a href="http://www.twitter.com/' + data.results[i].from_user + '">' + data.results[i].from_user + '</a>: ' + data.results[i].text + '</p>';
}
deferred.resolve( out ); // resolve the request and pass in the out argument.
});

return deferred.promise(); // return a promise
}


$.when( getSearch() ).then(function( out ){ // the out variable will get passed in
console.log( out );
});

关于javascript - 附加到 getJSON 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743501/

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