gpt4 book ai didi

javascript - 嵌套 jQuery Ajax - 将第一个 ajax 响应全局变量数据传递到第二个 ajax 中进行处理

转载 作者:行者123 更新时间:2023-12-03 05:30:54 26 4
gpt4 key购买 nike

我知道 js 异步问题,这就是为什么我想出了以下 2 个函数,以便将 ajax 放入可重用函数调用中,以便我可以在网站的其他部分使用它。当回调完成时,工作非常好。

但我遇到的问题是,我需要一个来自 getBlocks() ajax 调用的变量,该变量需要位于第二个 ajax 调用 getAcct() 中。我在第一个 ajax 调用中有一个 for 循环,它在每次迭代时调用第二个 ajax 调用来获取帐户名称。我尝试设置全局变量qq,但它总是显示未定义。

如何解决以下问题?

//get nxt blockchain transactions
function getBlocks(acct, ip, pikachu) {
$.ajax({
url: 'http://'+ ip +'/nxt?=%2Fnxt&requestType=getBlockchainTransactions&account=' + acct + '+&withMessage=true',
dataType: 'json',
success: pikachu
}); //get account name
}

//get nxt account info
function getAcct(acct, ip, zelda) {
$.ajax({
url: 'http://'+ ip +'/nxt?=%2Fnxt&requestType=getAccount&account=' + acct + '+&withMessage=true',
dataType: 'json',
success: zelda
}); //get account name
}


getBlocks(nxtacct, nxtip, function(response) {
var xx = [];
xx = response.transactions;

for( i = 0; i < xx.length; i++) {
yy = xx[i].senderRS;
var qq;

getAcct(yy, nxtip, function(response) {
qq = response.name;
});

jQuery(targetb).append("<tr>");
jQuery(targetb).append("<td>" + xx[i].amountNQT +"</td>");
jQuery(targetb).append("<td>" + xx[i].feeNQT + "</td>");
jQuery(targetb).append('<td><a href="https://test.nxtportal.org/accounts/'+ xx[i].sender +'" target="_blank">' + qq + "<em>" + yy + "</em>" + "</a></td>");
jQuery(targetb).append("<td>" + xx[i].recipientRS + "</td>");
jQuery(targetb).append("<td>" + xx[i].message+ "</td>");
jQuery(targetb).append("<td>" + date +"</td>");
jQuery(targetb).append("</tr>");
} //for
});

最佳答案

您可以使用 this 指定和访问自定义 AJAX 属性。只需在 AJAX 调用中指定属性,如下所示。

//get nxt account info
function getAcct(acct, ip, myCustomValue, zelda) {
$.ajax({
url: '...',
dataType: 'json',
myCustomProperty: myCustomValue,
success: zelda
}); //get account name
}

然后像这样在 zelda 函数中访问您的属性。

function zelda(response) {
var valueFromGetAcct = this.myCustomProperty;

// do stuff
}

您可以引用this了解更多信息。

关于javascript - 嵌套 jQuery Ajax - 将第一个 ajax 响应全局变量数据传递到第二个 ajax 中进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951628/

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