2017-11-16 18 views
-2

ここで私は別の関数で変数 "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); 
      } 
    }); 
} 
+3

機能外 – mplungjan

+1

2つのことに移動し、 'VARそれ-works':まず、あなたの変数名にハイフンを取り除く、第二にちょうど最も変数の宣言利用可能な関数の上にあるので、グローバルスコープにあります。 –

答えて

0

それは(var finalPrice)宣言のWHEREそれはですので、あなたのfinalPriceだけavailable機能にスコープされます。 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); 
     } 
    }); 
} 
1

ただ、関数外で定義し、available();で最終的な価格の前からvarを削除します。これで両方の機能からアクセスできます。

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); 
      } 
    }); 
} 
0

2番目の呼び出しは、コールバックの最初の、使用する必要がある場合。両方を呼び出しておらず、finalPriceを計算して使用する処理を実行する前に、両方の応答を待つ必要があります。

それは私はあなたが実行しているかなり確信しているので、finalPriceという名前のグローバル変数を作成するために、悪い論文場合razorpay決意available前に不確実な行動につながるparralelの両方の要求、。


まず事例

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); 
    }); 
関連する問題