我正在尝试将变量传递到done
回调中,但是没有任何运气。
var getDataForCompany = function(company_id) {
$.ajax({
type: "post",
url: url,
data:{
company_id: company_id
}
}).done(function(returnedData, textStatus, jqXHR) {
anotherFn(company_id);
//need to access company_id here, but it is undefined
});
};
我尝试将整个AJAX请求包装在IIFE中,以尝试关闭以捕获我的company_id,但是
var getDataForCompany = function(company_id) {
($.ajax({
type: "post",
url: url,
data:{
company_id: company_id
}
}).done(function(returnedData, textStatus, jqXHR) {
anotherFn(company_id);
//need to access company_id here, but it is undefined
})(company_id);
};
也没有工作。这不是正确的方法吗?
最佳答案
如注释中所述,匿名完成函数应具有对通过getDataForCompany调用传递的company_id的引用。它在传入时可能只是未定义的。下面的代码类似于ajax调用的闭包设置。如果运行该方法,将看到将记录company_id。
var getDataForCompany = function(company_id) {
var done = function() {
console.log(company_id)
}
done();
};
getDataForCompany("ID")
>>"ID"
getDataForCompany()
>>undefined