gpt4 book ai didi

jQuery ajax 成功匿名函数范围

转载 作者:行者123 更新时间:2023-12-03 21:28:47 25 4
gpt4 key购买 nike

如何从匿名成功函数中更新 returnHtml 变量?

function getPrice(productId, storeId) {
var returnHtml = '';

jQuery.ajax({
url: "/includes/unit.jsp?" + params,
cache: false,
dataType: "html",
success: function(html){
returnHtml = html;
}
});

return returnHtml;
}

最佳答案

这是错误的做法。 AJAX 中的第一个 A 是异步的。该函数在 AJAX 调用返回之前返回(或者至少可以)。所以这不是范围的问题。这是一个顺序问题。只有两个选择:

  1. 使 AJAX 调用与 async: false 同步(不推荐)选项;或
  2. 改变你的思维方式。您需要传递一个回调,以便在 AJAX 调用成功时调用,而不是从函数返回 HTML。

以(2)为例:

function findPrice(productId, storeId, callback) {
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
cache: false,
dataType: "html",
success: function(html) {
// Invoke the callback function, passing the html
callback(productId, storeId, html);
}
});

// Let the program continue while the html is fetched asynchronously
}

function receivePrice(productId, storeId, html) {
// Now do something with the returned html
alert("Product " + productId + " for storeId " + storeId + " received HTML " + html);
}

findPrice(23, 334, receivePrice);

关于jQuery ajax 成功匿名函数范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1457690/

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