这里我想访问变量" finalPrice"在另一个功能中,我怎么能做到这一点呢?
function available(id){
$.ajax({
method:"GET",
}).done(function(data){
for(j=0; j<available_location.length; j++) {
var finalPrice =available_location[j].price_details.final_price;
};
});
function razorpay() {
$.ajax({
url : 'http://test4238.wickedride.com//api/cancelledEnquiries/add',
type : 'GET',
data : {
},
success: function(data){
alert(finalPrice );
}
});
}
答案 0 :(得分:1)
只需在功能外定义它,然后从var
中的最终价格之前移除available();
。现在它可以被两个函数访问。
var finalPrice = 0;
function available(id){
$.ajax({
method:"GET",
}).done(function(data){
for(j=0; j<available_location.length; j++) {
finalPrice =available_location[j].price_details.final_price;
};
});
function razorpay() {
$.ajax({
url : 'http://test4238.wickedride.com//api/cancelledEnquiries/add',
type : 'GET',
data : {
},
success: function(data){
alert(finalPrice );
}
});
}
答案 1 :(得分:0)
您的finalPrice
仅限于available
函数,因为它是声明它的位置(var finalPrice
)。在Javascript中,如果您希望可以从所有脚本范围访问变量,请将其移到函数外部,直到脚本的开头:
var finalPrice;
function available(id) {
$.ajax({
method:"GET",
}).done(function(data) {
for(j = 0; j < available_location.length; j++) {
finalPrice = available_location[j].price_details.final_price;
};
});
function razorpay() {
$.ajax({
url: 'http://test4238.wickedride.com//api/cancelledEnquiries/add',
type: 'GET',
data: {
},
success: function(data){
alert(finalPrice );
}
});
}
答案 2 :(得分:0)
如果第二个呼叫需要第一个,则使用回调。如果它没有调用两者,并在执行处理之前等待两个答案,即计算finalPrice并使用它。
创建名为finalPrice
的全局变量是不好的,因为我非常确定您在 parralel 中运行这两个请求,如果razorpay
在available
之前解决,则导致行为不确定。
首例案例
function available(id, callback) {
$.ajax({
method: "GET",
}).done(function(data) {
var finalPrice = 0;
for (j = 0; j < available_location.length; j++) {
finalPrice = available_location[j].price_details.final_price;
}
callback(finalPrice);
});
function razorpay(finalPrice) {
$.ajax({
url: 'http://test4238.wickedride.com//api/cancelledEnquiries/add',
type: 'GET',
data: {
},
success: function(data) {
alert(finalPrice);
}
});
}
available(id, function(finalPrice) {
razorpay(finalPrice);
});