在使用 jquery 等第三部分库时,我一直使用回调,但是我遇到了需要设置自己的回调的问题。以我当前的代码为例:
// Get All Rates
function getAllRates() {
$('#shiplist tr.mainRow').each(function() {
var curid = $(this).attr("id");
var cursplit = curid.split("_");
var shipid = cursplit[1];
getRate(shipid);
});
}
这将遍历所有具有类“mainRow”的表行,并且每个主行的 id 为“shipment_#####”,因此对于每一行,它由 _ 拆分以获得实际的船舶 id,然后使用调用“getRate”函数,该函数使用 UPS 或 USPS api 向服务器发送 ajax 调用,以获取给定货件的费率。
这适用于 UPS,所有行立即开始加载并独立返回其费率。现在问题出在 Stamps.com,他们使用经过身份验证的肥皂对话,因此需要从第一次通话中接收验证字符串并在下一次通话中使用,依此类推。
所以基本上我需要修改上面的函数来执行“getRate()”函数并等待它完成,然后再执行下一次迭代。
有谁知道我怎么能不费吹灰之力地做到这一点?
编辑 - 澄清所提出的问题:
我想采用以下功能:
获取率(船ID);
并像这样访问它:
getRate(shipid, function(shipList) { _Function_data_here_ });
当我定义 getRate 函数时,如何定义它以使其具有回调能力?这是如何运作的?